<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>20年3月27日，Github被攻击。我的GitPage博客也挂了，紧急修复之路，也教会你搭建 Jekyll 博客！ | 小傅哥 bugstack 虫洞栈</title>
    <meta name="generator" content="VuePress 1.9.7">
    <link rel="icon" href="../../favicon.ico">
    <script charset="utf-8" async="async" src="../../js/jquery.min.js"></script>
    <script charset="utf-8" async="async" src="../../js/global.js"></script>
    <script charset="utf-8" async="async" src="../../js/fingerprint2.min.js"></script>
    <script>
              var _hmt = _hmt || [];
              (function() {
                var hm = document.createElement("script");
                hm.src = "https://hm.baidu.com/hm.js?0b31b4c146bf7126aed5009e1a4a11c8";
                var s = document.getElementsByTagName("script")[0];
                s.parentNode.insertBefore(hm, s);
              })();
            </script>
    <meta name="description" content="包含: Java 基础，面经手册，Netty4.x，手写Spring，用Java实现JVM，重学Java设计模式，SpringBoot中间件开发，IDEA插件开发，Lottery抽奖系统，字节码编程...">
    <meta property="article:modified_time" content="2021-10-23T12:27:50.000Z">
    <meta property="og:title" content="20年3月27日，Github被攻击。我的GitPage博客也挂了，紧急修复之路，也教会你搭建 Jekyll 博客！">
    <meta property="og:type" content="article">
    <meta property="og:url" content="/md/devops/2020-03-28-GithubAndMyBlogAttacked.html">
    <meta name="twitter:title" content="20年3月27日，Github被攻击。我的GitPage博客也挂了，紧急修复之路，也教会你搭建 Jekyll 博客！">
    <meta name="twitter:url" content="/md/devops/2020-03-28-GithubAndMyBlogAttacked.html">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="robots" content="all">
    <meta name="author" content="小傅哥">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">
    <meta name="keywords" content="小傅哥, bugstack 虫洞栈, DDD抽奖系统，数据结构，重学Java设计模式, 字节码编程, 中间件, 手写Spring, 手写MyBatis，Java基础, 面经手册，Java面试题，API网关，SpringBoot Stater, ChatGPT">
    <meta name="apple-mobile-web-app-capable" content="yes">
    
    <link rel="preload" href="../../assets/css/0.styles.6a62ca38.css" as="style"><link rel="preload" href="../../assets/css/styles.css@v=1710892328285" as="style"><link rel="preload" href="../../assets/js/cg-styles.js@v=1710892328285" as="script"><link rel="preload" href="../../assets/js/cg-app.js@v=1710892328285" as="script"><link rel="preload" href="../../assets/js/cg-4.js@v=1710892328285" as="script"><link rel="preload" href="../../assets/js/cg-3.js@v=1710892328285" as="script"><link rel="preload" href="../../assets/js/cg-282.js@v=1710892328285" as="script"><link rel="preload" href="../../assets/js/cg-5.js@v=1710892328285" as="script"><link rel="preload" href="../../assets/js/cg-6.js@v=1710892328285" as="script">
    <link rel="stylesheet" href="../../assets/css/0.styles.6a62ca38.css"><link rel="stylesheet" href="../../assets/css/styles.css@v=1710892328285">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="../../index.html" class="home-link router-link-active"><!----> <span class="site-name">小傅哥 bugstack 虫洞栈</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="../other/guide-to-reading.html" class="nav-link">
  导读
</a></div><div class="nav-item"><a href="../road-map/road-map.html" class="nav-link">
  路书
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="算法" class="dropdown-title"><span class="title">算法</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="../algorithm/data-structures/data-structures.html" class="nav-link">
  数据结构
</a></li><li class="dropdown-item"><!----> <a href="../algorithm/logic/math/math.html" class="nav-link">
  算法主题
</a></li><li class="dropdown-item"><!----> <a href="../algorithm/model/2023-02-12-chat-gpt.html" class="nav-link">
  机器学习
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Java" class="dropdown-title"><span class="title">Java</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/java/interview/2020-07-28-%E9%97%88%E3%88%A2%E7%B2%A1%E9%8E%B5%E5%AC%AA%E5%94%BD%20%E8%B7%AF%20%E5%AF%AE%E2%82%AC%E7%BB%A1%E5%9B%A5%E2%82%AC%E5%A9%87%E6%BD%B0%E7%92%87%E6%9B%9E%E7%95%BC%E9%96%AE%E4%BB%8B%E6%A3%B6%E9%8E%B4%E6%88%9D%E6%9A%90%E9%8A%86%8B.html" class="nav-link">
  面经手册
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/java/develop-jvm/2019-05-01-%E9%90%A2%E2%86%97ava%E7%80%B9%E7%82%B5%E5%B9%87JVM%E7%BB%97%EE%83%BF%E7%AB%B4%E7%BB%94%E7%8A%AE%E2%82%AC%E5%A9%82%E6%87%A1%E6%B5%A0%E3%82%88%EE%94%91%E5%AE%B8%E3%83%A5%E5%8F%BF%E9%8A%86%8B.html" class="nav-link">
  用Java实现JVM
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/java/core/2020-01-06-[%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD]%E9%8D%9C%E5%AC%AA%E6%A7%A5%E9%94%9B%E7%86%B6%E7%B6%98%E9%90%A8%E5%87%A6DEA%E6%9D%A9%E5%9B%A8%E6%B9%A1%E6%B5%9C%E5%97%97%E6%83%82%E9%94%9B%E4%BD%B8%E5%A7%9E%E6%B6%93%E7%8B%ABar%E9%8D%96%E5%91%AD%E6%B0%A8%E9%90%AE%E7%A3%8B%D0%92%E6%B5%9C%E5%97%AD%E7%B4%9D%E6%B6%93%E8%BD%B0%E7%B2%88%E6%B6%94%E5%A0%AC%E7%B4%B5.html" class="nav-link">
  基础技术
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Spring" class="dropdown-title"><span class="title">Spring</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/spring/develop-spring/2021-05-16-%E7%BB%97%AC1%E7%BB%94%E7%8B%85%E7%B4%B0%E5%AF%AE%E2%82%AC%E7%BB%A1%E5%9B%A6%E7%B2%99%E7%BC%81%E5%B6%8F%E7%B4%9D%E9%8E%B5%E5%AC%AA%E5%95%93Spring%E9%91%B3%E7%95%8C%E7%B2%B0%E6%B5%A3%E7%8A%B2%E7%94%AB%E9%8F%89%E3%83%A4%E7%B2%88%E6%B6%94%E5%A0%AC%E7%B4%B5.html" class="nav-link">
  Spring 手撸专栏
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/spring/develop-mybatis/2022-03-20-%E7%BB%97%AC1%E7%BB%94%E7%8B%85%E7%B4%B0%E5%AF%AE%E2%82%AC%E7%BB%A1%E5%9B%A6%E7%B2%99%E7%BC%81%E5%B6%8F%E7%B4%9D%E9%8E%B5%E5%AC%AA%E5%95%93Mybatis%E9%91%B3%E7%95%8C%E7%B2%B0%E6%B5%A3%E7%8A%B2%E7%94%AB%E9%8F%89%E3%83%A4%E7%B2%88%E6%B6%94%E5%A0%AC%E7%B4%B5.html" class="nav-link">
  Mybatis 手撸专栏
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/spring/spring-cloud/2019-10-31-Spring%20Cloud%E9%97%86%E8%BA%B2%E2%82%AC%E5%A9%83%E2%82%AC%E7%BB%98%E6%B9%81%E6%B6%93%E2%82%AC%E9%8D%8B%E5%BF%94%EE%9B%A7%E6%9D%A9%E6%9D%BF%E6%86%A1%E7%92%87%E5%A4%89%E7%B6%98SpringCloud%E9%8F%84%EE%88%99%E7%B2%88%E6%B6%94%E5%A0%9B%E2%82%AC%8B.html" class="nav-link">
  Spring Cloud
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/spring/source-code/2019-12-25-[%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD]Mybatis%E9%8E%BA%E3%83%A5%E5%BD%9B%E5%A8%8C%E2%84%83%E6%B9%81%E7%80%B9%E7%82%B5%E5%B9%87%E7%BB%AB%E8%AE%B3%E8%B4%9F%E6%B5%A0%E2%82%AC%E6%B6%94%E5%A0%9D%E5%BD%B2%E6%B5%A0%E3%83%A6%E5%A2%BD%E7%90%9B%E5%B1%BD%EE%96%83%E9%8D%92%E7%8A%B3%E6%95%BC%E9%8F%8C%A5.html" class="nav-link">
  源码分析(Mybatis、Quartz)
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="面向对象" class="dropdown-title"><span class="title">面向对象</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          重学Java设计模式
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/design-pattern/2020-05-20-%E9%96%B2%E5%B6%85%EE%84%9FJava%E7%92%81%E6%8D%90%EE%85%B8%E5%A6%AF%E2%80%B3%E7%B4%A1%E9%8A%86%E5%A9%82%E7%96%84%E9%8E%B4%E6%A8%BA%E4%BC%90%E9%8D%98%E5%82%9B%E6%9F%9F%E5%A8%89%E6%9B%9F%C4%81%E5%AF%AE%E5%BF%8B%E2%82%AC%8B.html" class="nav-link">
  创建型模式
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/design-pattern/2020-06-02-%E9%96%B2%E5%B6%85%EE%84%9F%20Java%20%E7%92%81%E6%8D%90%EE%85%B8%E5%A6%AF%E2%80%B3%E7%B4%A1%E9%8A%86%E5%A9%87%E2%82%AC%E5%82%9E%E5%8E%A4%E9%8D%A3%E3%84%A6%C4%81%E5%AF%AE%E5%BF%8B%E2%82%AC%8B.html" class="nav-link">
  结构型模式
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/design-pattern/2020-06-18-%E9%96%B2%E5%B6%85%EE%84%9F%20Java%20%E7%92%81%E6%8D%90%EE%85%B8%E5%A6%AF%E2%80%B3%E7%B4%A1%E9%8A%86%E5%A9%82%E7%96%84%E9%8E%B4%E6%A8%BF%E7%9F%97%E6%B5%A0%E5%A9%9A%E6%91%BC%E5%A6%AF%E2%80%B3%E7%B4%A1%E9%8A%86%8B.html" class="nav-link">
  行为型模式
</a></li></ul></li><li class="dropdown-item"><h4>
          系统架构
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/framework/ddd/2019-10-15-DDD%E6%B6%93%E6%92%BB%EE%95%BD%E5%A6%97%E5%A0%9C%E7%B7%A5%E6%B6%93%E2%82%AC%E9%8A%86%E5%A9%82%E5%9E%B5%E7%92%87%E5%97%9B%EE%95%AB%E9%8D%A9%E7%86%BC%E2%94%8D%E9%8D%94%E3%84%A8%EE%86%95%E7%92%81%EE%93%8ADD%E9%92%80%E8%97%89%E6%B9%B4%E9%8A%86%8B.html" class="nav-link">
  DDD 专题
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/framework/frame/2019-12-22-%E9%8F%8B%E8%88%B5%E7%80%AF%E5%A6%97%E5%97%98%E7%81%A6%E9%8E%BC%EE%85%9E%E7%BC%93%E6%B6%93%E2%82%AC%E9%8A%86%E5%A9%82%E5%B4%9F%E6%B5%A3%E6%92%B3%E7%B0%B2%E9%90%A2%E3%84%A6%E6%B9%87%E9%8D%94%E2%80%B2%E7%AE%A3SSM%E9%8F%81%E6%9D%91%E6%82%8E%E9%94%9B%E6%AD%8Bpring4%20+%20SpringMvc%20+%20Mybatis%E9%8A%86%8B.html" class="nav-link">
  工程框架
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/framework/scheme/2021-02-04-%E9%8D%A9%E8%BD%B0%E7%B0%ACIDEA%E9%8E%BB%E6%8E%8D%E6%AC%A2%E5%AF%AE%E2%82%AC%E9%8D%99%E6%88%9D%E6%8B%B0%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%B9%E5%BD%83%E5%A6%97%E2%95%82%E5%A6%A7%E9%8F%88%EE%88%A4%E7%B4%9D%E7%80%B9%E7%82%B5%E5%B9%87%E9%90%AE%E6%96%BF%E5%BD%82%E6%B5%9C%E3%82%84%E7%B2%AF%E7%92%90%E3%84%A9%E5%99%BA%E9%91%B7%EE%81%84%E5%A7%A9%E9%8D%92%E5%97%98%E7%80%BD.html" class="nav-link">
  架构方案
</a></li></ul></li><li class="dropdown-item"><h4>
          标准
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/standard/2020-09-14-%E6%B6%93%E2%82%AC%E5%A8%86%E2%80%B2%E5%94%AC%E9%90%AE%E4%BD%BD%E7%98%8E%E7%80%B9%E2%98%85%E7%B4%9D%E5%AE%B8%EE%86%BE%E5%81%A3%E6%9D%A9%E5%9B%A6%E7%AC%89%E6%B5%9C%E5%97%9A%E7%98%AF%E9%90%A2%E3%84%A6%E6%B9%A1%E9%94%9B%81.html" class="nav-link">
  开发规范&amp;事故
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="中间件" class="dropdown-title"><span class="title">中间件</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/assembly/middleware/2019-12-02-SpringBoot%E9%8F%88%E5%B6%85%E5%A7%9F%E5%A8%8C%E8%8D%A4%E6%82%8A%E6%B6%93%EE%85%A2%E6%A3%BF%E6%B5%A0%E6%9C%B5%E7%AE%A3%E7%BC%81%E7%86%B6%E7%AB%B4%E9%90%A7%E8%97%89%E6%82%95%E9%8D%97%E6%9B%A2%E7%8D%99%E7%92%87%81.html" class="nav-link">
  SpringBoot 中间件开发
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/assembly/idea-plugin/2021-08-27-%E9%8E%B6%E2%82%AC%E9%8F%88%EE%88%9D%E7%9A%9F%E9%90%AE%E6%97%93%E7%B4%9DIDEA%20%E9%8E%BB%E6%8E%8D%E6%AC%A2%E9%8E%AC%E5%BA%9D%E7%AE%9E%E5%AF%AE%E2%82%AC%E9%8D%99%E6%88%AF%E7%B4%B5.html" class="nav-link">
  IDEA Plugin 开发手册
</a></li><li class="dropdown-item"><!----> <a href="../assembly/api-gateway/api-gateway.html" class="nav-link">
  API网关：中间件设计和实践
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Netty 4.x" class="dropdown-title"><span class="title">Netty 4.x</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/netty/base/2019-07-30-netty%E5%A6%97%E5%A0%9C%E7%B7%A5%E9%94%9B%E5%AE%AFetty4.1%E9%8D%A9%E8%99%B9%EE%94%85%E9%8D%8F%E3%83%A9%E6%A3%AC%E7%BB%A1%E5%9B%AC%E6%B5%82%E9%8A%86%E5%A9%82%E5%9E%B5%E9%8D%8F%EE%99%90avaIO%E6%B6%94%E5%AC%AE%E6%A3%ACBIO%E9%8A%86%E4%B8%AFIO%E9%8A%86%E4%B8%84IO%E7%80%B9%E7%82%B4%E5%9E%AC%E7%BC%81%E5%86%A7%E7%AF%84%E9%8A%86%8B.html" class="nav-link">
  基础入门篇
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/netty/expand/2019-08-16-netty%E5%A6%97%E5%A0%9C%E7%B7%A5%E9%94%9B%E5%AE%AFetty4.1%E6%B6%93%EE%85%A0%E9%AA%87%E9%8E%B7%E6%92%B3%E7%9D%8D%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A5%9Betty%E6%B6%93%E5%B6%B4pringBoot%E9%8F%81%E6%9D%91%E6%82%8E%E9%8A%86%8B.html" class="nav-link">
  中级拓展篇
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/netty/application/2019-09-01-%E9%8E%B5%E5%AC%AA%E5%95%93RPC%E5%A6%97%E5%97%98%E7%81%A6%E7%BB%97%EE%83%BF%E7%AB%B4%E7%BB%94%E7%8A%AE%E2%82%AC%E5%A9%85%E5%9A%9C%E7%80%B9%E6%B0%AB%E7%AE%9F%E9%96%B0%E5%B6%87%E7%96%86xml%E9%8A%86%8B.html" class="nav-link">
  高级应用篇
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/netty/source-code/2019-09-10-netty%E5%A6%97%E5%A0%9C%E7%B7%A5%E9%94%9B%E5%AE%AFetty4.1%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A5%9BioEventLoopGroup%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD%E9%8A%86%8B.html" class="nav-link">
  源码分析篇
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="字节码编程" class="dropdown-title"><span class="title">字节码编程</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          框架
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/asm/2020-03-25-[ASM%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AA%87%E6%BF%A1%E5%82%9B%E7%81%89%E6%B5%A3%E7%8A%B2%E5%BD%A7%E9%8D%90%E6%A9%9FRUD%E9%94%9B%E5%B2%84%E5%81%85%E6%9D%A9%E6%AC%91%EE%9D%92%E9%8E%B6%E2%82%AC%E9%8F%88%EE%88%99%E7%B6%98%E5%A7%98%E6%AD%8C%E7%B9%99%E7%BA%B0%E9%A2%81%E7%AC%89%E9%8D%92%B0.html" class="nav-link">
  ASM
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/javassist/2020-04-19-%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AC%B6%E7%B4%9DJavassist%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A9%82%E7%86%80%E6%B5%9C%E5%B7%8Eavassist%E9%90%A8%E5%8B%AD%EE%83%87%E6%B6%93%E2%82%AC%E6%B6%93%EE%81%85%EE%94%8D%E6%B8%9A%E5%AA%93elloworld%E9%8A%86%8B.html" class="nav-link">
  Javassist
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/byte-buddy/2020-05-08-%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AC%B6%E7%B4%9DByte-buddy%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A9%82%E7%86%80%E6%B5%9C%E5%B6%A3yte%20Buddy%E7%92%87%EE%85%9F%E7%A1%B6%E9%8D%92%E6%B6%98%E7%BC%93%E9%90%A8%E5%8B%AD%EE%83%87%E6%B6%93%E2%82%AC%E6%B6%93%E7%8B%A7elloWorld%E9%8A%86%8B.html" class="nav-link">
  Byte-Buddy
</a></li></ul></li><li class="dropdown-item"><h4>
          全链路监控
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/agent/2019-07-10-%E9%8D%A9%E8%BD%B0%E7%B0%ACJavaAgent%E9%90%A8%E5%8B%AB%E5%8F%8F%E9%96%BE%E6%8D%90%E7%9F%BE%E9%90%A9%E6%88%9E%E5%B8%B6%E6%B6%93%E2%82%AC%E9%8A%86%E5%A9%82%E6%A3%AC%E9%94%9B%E4%B8%A3avaAgent%E9%8A%86%8B.html" class="nav-link">
  JavaAgent
</a></li></ul></li><li class="dropdown-item"><h4>
          文档
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/asm-document/1%E5%AF%AE%E6%9B%A1%E2%96%88.html" class="nav-link">
  ASM-DOC
</a></li></ul></li></ul></div></div><div class="nav-item"><a href="2023-04-18-tool.html" class="nav-link">
  部署
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="💯实战项目" class="dropdown-title"><span class="title">💯实战项目</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          业务类型
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="../project/big-market/big-market.html" class="nav-link">
  大营销平台系统
</a></li><li class="dropdown-subitem"><a href="../project/chatgpt/chatgpt.html" class="nav-link">
  OpenAi 大模型应用服务体系构建
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/project/lottery/introduce/Lottery%E9%8E%B6%E8%97%89%EE%9A%9B%E7%BB%AF%E8%8D%A4%E7%B2%BA.html" class="nav-link">
  Lottery 分布式抽奖系统
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/project/im/2020-03-04-%E9%8A%86%E5%A5%9Betty+JavaFx%E7%80%B9%E7%82%B4%E5%9E%AC%E9%94%9B%E6%B0%AB%E8%B1%A2%E5%A6%97%E5%B2%84%E6%BD%B0%E9%90%97%E5%A0%9D%E4%BA%95%E6%B7%87%C2%A4%E4%BA%B0%E6%BE%B6%E2%94%BF%E2%82%AC%8B.html" class="nav-link">
  IM Netty 仿PC端微信
</a></li><li class="dropdown-subitem"><a href="../project/chatbot-api/chatbot-api.html" class="nav-link">
  ChatGPT AI 问答助手
</a></li></ul></li><li class="dropdown-item"><h4>
          组件类型
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://bugstack.cn/md/assembly/middleware/2021-03-31-%E3%80%8ASpringBoot%20%E4%B8%AD%E9%97%B4%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%BC%80%E5%8F%91%E3%80%8B%E4%B8%93%E6%A0%8F%E5%B0%8F%E5%86%8C%E4%B8%8A%E7%BA%BF%E5%95%A6%EF%BC%81.html" target="_blank" rel="noopener noreferrer" class="nav-link external">
  SpringBoot 中间件设计和开发
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="https://bugstack.cn/md/assembly/api-gateway/api-gateway.html" target="_blank" rel="noopener noreferrer" class="nav-link external">
  API网关：中间件设计和实践
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li><li class="dropdown-item"><h4>
          其他类型
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="../project/ddd-scene-solution/alipay-sandbox.html" class="nav-link">
  小场景训练营
</a></li></ul></li></ul></div></div><div class="nav-item"><a href="../zsxq/introduce.html" class="nav-link">
  🌍知识星球
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="📝产品" class="dropdown-title"><span class="title">📝产品</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          出版物
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="../product/book/design-pattern.html" class="nav-link">
  2021年出版《重学Java设计模式》
</a></li><li class="dropdown-subitem"><a href="../product/book/mybatis.html" class="nav-link">
  2023年出版《手写MyBatis：渐进式源码实践》
</a></li></ul></li><li class="dropdown-item"><h4>
          PDF —— 加入星球免费获取
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="http://pan.bugstack.cn/?dl=05b281eff1476e2c22eb5114ced0dc4d" target="_blank" rel="noopener noreferrer" class="nav-link external">
  免费《字节码编程手册》(密码：Rlxbh1ia)
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="http://pan.bugstack.cn/?dl=431e114a26f810655d29b6dea54a680f" target="_blank" rel="noopener noreferrer" class="nav-link external">
  免费《重学Java设计模式》——旧版PDF(密码：FWchEAF6)
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="http://pan.bugstack.cn/?dl=dbed614f318bf9fc9d3b034ba9502a3c" target="_blank" rel="noopener noreferrer" class="nav-link external">
  免费《倚天村 • 图解数据结构》(密码：0SjbAlPa)
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="https://download.csdn.net/download/Yao__Shun__Yu/14932325" target="_blank" rel="noopener noreferrer" class="nav-link external">
  付费《Java 面经手册》
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="https://download.csdn.net/download/Yao__Shun__Yu/77484299" target="_blank" rel="noopener noreferrer" class="nav-link external">
  付费《IDEA Plugin 开发手册》
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li><li class="dropdown-item"><h4>
          插件
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="../product/idea-plugin/vo2dto.html" class="nav-link">
  💱 IDEA Plugin vo2dto —— 对象转换插件
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="关于" class="dropdown-title"><span class="title">关于</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="../about/me/about-me.html" class="nav-link">
  关于自己
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/about/study/2020-04-30-%E7%92%81%E6%9F%A5%E4%BA%BE%E9%90%9E%E5%97%AD%E7%B4%9D%E9%8D%99%EE%81%87%EE%9B%A6%E6%B5%A3%E7%8A%B3%E6%A7%B8%E6%B6%93%E2%82%AC%E6%B6%93%EE%81%86%E5%9F%8D%E9%8E%B6%E6%A8%BF%E5%90%98%E9%90%A8%E5%8B%AD%E2%96%BC%E6%90%B4%E5%BF%93%E6%86%B3%E9%94%9B%E5%B1%BE%E7%98%AF%E6%B6%93%E6%B0%AD%E5%A3%98%E5%AE%B8%E3%83%A4%E7%B6%94%E9%90%AA%E7%86%BA%E6%AE%91%E6%B6%93%E5%B6%89%E6%B8%B6%E7%91%95%E4%BD%B8%E5%95%80%E9%91%BA%E9%81%8D%E6%8C%B6%E9%8D%A9%E7%A1%85%EE%86%84.html" class="nav-link">
  关于学习
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/about/job/2020-04-11-%E5%AE%B8%E3%83%A4%E7%B6%94%E6%B6%93%E3%82%85%E5%8B%BE%E7%BB%A0%E2%82%AC%E9%8D%98%E5%97%97%E5%95%93%E9%8E%B4%E6%84%AF%E7%B9%96%E9%8F%8D%E5%87%A4%E7%B4%9D%E7%92%8B%E4%BD%BD%EE%9B%A6%E6%B5%A3%E7%8A%B2%E6%86%96%E9%94%9B%81.html" class="nav-link">
  关于职场
</a></li></ul></div></div><div class="nav-item"><a href="https://space.bilibili.com/15637440" target="_blank" rel="noopener noreferrer" class="nav-link external">
  B站
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="源码" class="dropdown-title"><span class="title">源码</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://github.com/fuzhengwei" target="_blank" rel="noopener noreferrer" class="nav-link external">
  开源项目 - Github
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://gitcode.net/fuzhengwei" target="_blank" rel="noopener noreferrer" class="nav-link external">
  开源项目 - Gitcode
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://gitcode.net/KnowledgePlanet" target="_blank" rel="noopener noreferrer" class="nav-link external">
  付费项目 - Gitcode
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="../other/guide-to-reading.html" class="nav-link">
  导读
</a></div><div class="nav-item"><a href="../road-map/road-map.html" class="nav-link">
  路书
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="算法" class="dropdown-title"><span class="title">算法</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="../algorithm/data-structures/data-structures.html" class="nav-link">
  数据结构
</a></li><li class="dropdown-item"><!----> <a href="../algorithm/logic/math/math.html" class="nav-link">
  算法主题
</a></li><li class="dropdown-item"><!----> <a href="../algorithm/model/2023-02-12-chat-gpt.html" class="nav-link">
  机器学习
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Java" class="dropdown-title"><span class="title">Java</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/java/interview/2020-07-28-%E9%97%88%E3%88%A2%E7%B2%A1%E9%8E%B5%E5%AC%AA%E5%94%BD%20%E8%B7%AF%20%E5%AF%AE%E2%82%AC%E7%BB%A1%E5%9B%A5%E2%82%AC%E5%A9%87%E6%BD%B0%E7%92%87%E6%9B%9E%E7%95%BC%E9%96%AE%E4%BB%8B%E6%A3%B6%E9%8E%B4%E6%88%9D%E6%9A%90%E9%8A%86%8B.html" class="nav-link">
  面经手册
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/java/develop-jvm/2019-05-01-%E9%90%A2%E2%86%97ava%E7%80%B9%E7%82%B5%E5%B9%87JVM%E7%BB%97%EE%83%BF%E7%AB%B4%E7%BB%94%E7%8A%AE%E2%82%AC%E5%A9%82%E6%87%A1%E6%B5%A0%E3%82%88%EE%94%91%E5%AE%B8%E3%83%A5%E5%8F%BF%E9%8A%86%8B.html" class="nav-link">
  用Java实现JVM
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/java/core/2020-01-06-[%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD]%E9%8D%9C%E5%AC%AA%E6%A7%A5%E9%94%9B%E7%86%B6%E7%B6%98%E9%90%A8%E5%87%A6DEA%E6%9D%A9%E5%9B%A8%E6%B9%A1%E6%B5%9C%E5%97%97%E6%83%82%E9%94%9B%E4%BD%B8%E5%A7%9E%E6%B6%93%E7%8B%ABar%E9%8D%96%E5%91%AD%E6%B0%A8%E9%90%AE%E7%A3%8B%D0%92%E6%B5%9C%E5%97%AD%E7%B4%9D%E6%B6%93%E8%BD%B0%E7%B2%88%E6%B6%94%E5%A0%AC%E7%B4%B5.html" class="nav-link">
  基础技术
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Spring" class="dropdown-title"><span class="title">Spring</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/spring/develop-spring/2021-05-16-%E7%BB%97%AC1%E7%BB%94%E7%8B%85%E7%B4%B0%E5%AF%AE%E2%82%AC%E7%BB%A1%E5%9B%A6%E7%B2%99%E7%BC%81%E5%B6%8F%E7%B4%9D%E9%8E%B5%E5%AC%AA%E5%95%93Spring%E9%91%B3%E7%95%8C%E7%B2%B0%E6%B5%A3%E7%8A%B2%E7%94%AB%E9%8F%89%E3%83%A4%E7%B2%88%E6%B6%94%E5%A0%AC%E7%B4%B5.html" class="nav-link">
  Spring 手撸专栏
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/spring/develop-mybatis/2022-03-20-%E7%BB%97%AC1%E7%BB%94%E7%8B%85%E7%B4%B0%E5%AF%AE%E2%82%AC%E7%BB%A1%E5%9B%A6%E7%B2%99%E7%BC%81%E5%B6%8F%E7%B4%9D%E9%8E%B5%E5%AC%AA%E5%95%93Mybatis%E9%91%B3%E7%95%8C%E7%B2%B0%E6%B5%A3%E7%8A%B2%E7%94%AB%E9%8F%89%E3%83%A4%E7%B2%88%E6%B6%94%E5%A0%AC%E7%B4%B5.html" class="nav-link">
  Mybatis 手撸专栏
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/spring/spring-cloud/2019-10-31-Spring%20Cloud%E9%97%86%E8%BA%B2%E2%82%AC%E5%A9%83%E2%82%AC%E7%BB%98%E6%B9%81%E6%B6%93%E2%82%AC%E9%8D%8B%E5%BF%94%EE%9B%A7%E6%9D%A9%E6%9D%BF%E6%86%A1%E7%92%87%E5%A4%89%E7%B6%98SpringCloud%E9%8F%84%EE%88%99%E7%B2%88%E6%B6%94%E5%A0%9B%E2%82%AC%8B.html" class="nav-link">
  Spring Cloud
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/spring/source-code/2019-12-25-[%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD]Mybatis%E9%8E%BA%E3%83%A5%E5%BD%9B%E5%A8%8C%E2%84%83%E6%B9%81%E7%80%B9%E7%82%B5%E5%B9%87%E7%BB%AB%E8%AE%B3%E8%B4%9F%E6%B5%A0%E2%82%AC%E6%B6%94%E5%A0%9D%E5%BD%B2%E6%B5%A0%E3%83%A6%E5%A2%BD%E7%90%9B%E5%B1%BD%EE%96%83%E9%8D%92%E7%8A%B3%E6%95%BC%E9%8F%8C%A5.html" class="nav-link">
  源码分析(Mybatis、Quartz)
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="面向对象" class="dropdown-title"><span class="title">面向对象</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          重学Java设计模式
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/design-pattern/2020-05-20-%E9%96%B2%E5%B6%85%EE%84%9FJava%E7%92%81%E6%8D%90%EE%85%B8%E5%A6%AF%E2%80%B3%E7%B4%A1%E9%8A%86%E5%A9%82%E7%96%84%E9%8E%B4%E6%A8%BA%E4%BC%90%E9%8D%98%E5%82%9B%E6%9F%9F%E5%A8%89%E6%9B%9F%C4%81%E5%AF%AE%E5%BF%8B%E2%82%AC%8B.html" class="nav-link">
  创建型模式
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/design-pattern/2020-06-02-%E9%96%B2%E5%B6%85%EE%84%9F%20Java%20%E7%92%81%E6%8D%90%EE%85%B8%E5%A6%AF%E2%80%B3%E7%B4%A1%E9%8A%86%E5%A9%87%E2%82%AC%E5%82%9E%E5%8E%A4%E9%8D%A3%E3%84%A6%C4%81%E5%AF%AE%E5%BF%8B%E2%82%AC%8B.html" class="nav-link">
  结构型模式
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/design-pattern/2020-06-18-%E9%96%B2%E5%B6%85%EE%84%9F%20Java%20%E7%92%81%E6%8D%90%EE%85%B8%E5%A6%AF%E2%80%B3%E7%B4%A1%E9%8A%86%E5%A9%82%E7%96%84%E9%8E%B4%E6%A8%BF%E7%9F%97%E6%B5%A0%E5%A9%9A%E6%91%BC%E5%A6%AF%E2%80%B3%E7%B4%A1%E9%8A%86%8B.html" class="nav-link">
  行为型模式
</a></li></ul></li><li class="dropdown-item"><h4>
          系统架构
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/framework/ddd/2019-10-15-DDD%E6%B6%93%E6%92%BB%EE%95%BD%E5%A6%97%E5%A0%9C%E7%B7%A5%E6%B6%93%E2%82%AC%E9%8A%86%E5%A9%82%E5%9E%B5%E7%92%87%E5%97%9B%EE%95%AB%E9%8D%A9%E7%86%BC%E2%94%8D%E9%8D%94%E3%84%A8%EE%86%95%E7%92%81%EE%93%8ADD%E9%92%80%E8%97%89%E6%B9%B4%E9%8A%86%8B.html" class="nav-link">
  DDD 专题
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/framework/frame/2019-12-22-%E9%8F%8B%E8%88%B5%E7%80%AF%E5%A6%97%E5%97%98%E7%81%A6%E9%8E%BC%EE%85%9E%E7%BC%93%E6%B6%93%E2%82%AC%E9%8A%86%E5%A9%82%E5%B4%9F%E6%B5%A3%E6%92%B3%E7%B0%B2%E9%90%A2%E3%84%A6%E6%B9%87%E9%8D%94%E2%80%B2%E7%AE%A3SSM%E9%8F%81%E6%9D%91%E6%82%8E%E9%94%9B%E6%AD%8Bpring4%20+%20SpringMvc%20+%20Mybatis%E9%8A%86%8B.html" class="nav-link">
  工程框架
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/framework/scheme/2021-02-04-%E9%8D%A9%E8%BD%B0%E7%B0%ACIDEA%E9%8E%BB%E6%8E%8D%E6%AC%A2%E5%AF%AE%E2%82%AC%E9%8D%99%E6%88%9D%E6%8B%B0%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%B9%E5%BD%83%E5%A6%97%E2%95%82%E5%A6%A7%E9%8F%88%EE%88%A4%E7%B4%9D%E7%80%B9%E7%82%B5%E5%B9%87%E9%90%AE%E6%96%BF%E5%BD%82%E6%B5%9C%E3%82%84%E7%B2%AF%E7%92%90%E3%84%A9%E5%99%BA%E9%91%B7%EE%81%84%E5%A7%A9%E9%8D%92%E5%97%98%E7%80%BD.html" class="nav-link">
  架构方案
</a></li></ul></li><li class="dropdown-item"><h4>
          标准
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/develop/standard/2020-09-14-%E6%B6%93%E2%82%AC%E5%A8%86%E2%80%B2%E5%94%AC%E9%90%AE%E4%BD%BD%E7%98%8E%E7%80%B9%E2%98%85%E7%B4%9D%E5%AE%B8%EE%86%BE%E5%81%A3%E6%9D%A9%E5%9B%A6%E7%AC%89%E6%B5%9C%E5%97%9A%E7%98%AF%E9%90%A2%E3%84%A6%E6%B9%A1%E9%94%9B%81.html" class="nav-link">
  开发规范&amp;事故
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="中间件" class="dropdown-title"><span class="title">中间件</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/assembly/middleware/2019-12-02-SpringBoot%E9%8F%88%E5%B6%85%E5%A7%9F%E5%A8%8C%E8%8D%A4%E6%82%8A%E6%B6%93%EE%85%A2%E6%A3%BF%E6%B5%A0%E6%9C%B5%E7%AE%A3%E7%BC%81%E7%86%B6%E7%AB%B4%E9%90%A7%E8%97%89%E6%82%95%E9%8D%97%E6%9B%A2%E7%8D%99%E7%92%87%81.html" class="nav-link">
  SpringBoot 中间件开发
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/assembly/idea-plugin/2021-08-27-%E9%8E%B6%E2%82%AC%E9%8F%88%EE%88%9D%E7%9A%9F%E9%90%AE%E6%97%93%E7%B4%9DIDEA%20%E9%8E%BB%E6%8E%8D%E6%AC%A2%E9%8E%AC%E5%BA%9D%E7%AE%9E%E5%AF%AE%E2%82%AC%E9%8D%99%E6%88%AF%E7%B4%B5.html" class="nav-link">
  IDEA Plugin 开发手册
</a></li><li class="dropdown-item"><!----> <a href="../assembly/api-gateway/api-gateway.html" class="nav-link">
  API网关：中间件设计和实践
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Netty 4.x" class="dropdown-title"><span class="title">Netty 4.x</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/netty/base/2019-07-30-netty%E5%A6%97%E5%A0%9C%E7%B7%A5%E9%94%9B%E5%AE%AFetty4.1%E9%8D%A9%E8%99%B9%EE%94%85%E9%8D%8F%E3%83%A9%E6%A3%AC%E7%BB%A1%E5%9B%AC%E6%B5%82%E9%8A%86%E5%A9%82%E5%9E%B5%E9%8D%8F%EE%99%90avaIO%E6%B6%94%E5%AC%AE%E6%A3%ACBIO%E9%8A%86%E4%B8%AFIO%E9%8A%86%E4%B8%84IO%E7%80%B9%E7%82%B4%E5%9E%AC%E7%BC%81%E5%86%A7%E7%AF%84%E9%8A%86%8B.html" class="nav-link">
  基础入门篇
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/netty/expand/2019-08-16-netty%E5%A6%97%E5%A0%9C%E7%B7%A5%E9%94%9B%E5%AE%AFetty4.1%E6%B6%93%EE%85%A0%E9%AA%87%E9%8E%B7%E6%92%B3%E7%9D%8D%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A5%9Betty%E6%B6%93%E5%B6%B4pringBoot%E9%8F%81%E6%9D%91%E6%82%8E%E9%8A%86%8B.html" class="nav-link">
  中级拓展篇
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/netty/application/2019-09-01-%E9%8E%B5%E5%AC%AA%E5%95%93RPC%E5%A6%97%E5%97%98%E7%81%A6%E7%BB%97%EE%83%BF%E7%AB%B4%E7%BB%94%E7%8A%AE%E2%82%AC%E5%A9%85%E5%9A%9C%E7%80%B9%E6%B0%AB%E7%AE%9F%E9%96%B0%E5%B6%87%E7%96%86xml%E9%8A%86%8B.html" class="nav-link">
  高级应用篇
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/netty/source-code/2019-09-10-netty%E5%A6%97%E5%A0%9C%E7%B7%A5%E9%94%9B%E5%AE%AFetty4.1%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A5%9BioEventLoopGroup%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD%E9%8A%86%8B.html" class="nav-link">
  源码分析篇
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="字节码编程" class="dropdown-title"><span class="title">字节码编程</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          框架
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/asm/2020-03-25-[ASM%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AA%87%E6%BF%A1%E5%82%9B%E7%81%89%E6%B5%A3%E7%8A%B2%E5%BD%A7%E9%8D%90%E6%A9%9FRUD%E9%94%9B%E5%B2%84%E5%81%85%E6%9D%A9%E6%AC%91%EE%9D%92%E9%8E%B6%E2%82%AC%E9%8F%88%EE%88%99%E7%B6%98%E5%A7%98%E6%AD%8C%E7%B9%99%E7%BA%B0%E9%A2%81%E7%AC%89%E9%8D%92%B0.html" class="nav-link">
  ASM
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/javassist/2020-04-19-%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AC%B6%E7%B4%9DJavassist%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A9%82%E7%86%80%E6%B5%9C%E5%B7%8Eavassist%E9%90%A8%E5%8B%AD%EE%83%87%E6%B6%93%E2%82%AC%E6%B6%93%EE%81%85%EE%94%8D%E6%B8%9A%E5%AA%93elloworld%E9%8A%86%8B.html" class="nav-link">
  Javassist
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/byte-buddy/2020-05-08-%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AC%B6%E7%B4%9DByte-buddy%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A9%82%E7%86%80%E6%B5%9C%E5%B6%A3yte%20Buddy%E7%92%87%EE%85%9F%E7%A1%B6%E9%8D%92%E6%B6%98%E7%BC%93%E9%90%A8%E5%8B%AD%EE%83%87%E6%B6%93%E2%82%AC%E6%B6%93%E7%8B%A7elloWorld%E9%8A%86%8B.html" class="nav-link">
  Byte-Buddy
</a></li></ul></li><li class="dropdown-item"><h4>
          全链路监控
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/agent/2019-07-10-%E9%8D%A9%E8%BD%B0%E7%B0%ACJavaAgent%E9%90%A8%E5%8B%AB%E5%8F%8F%E9%96%BE%E6%8D%90%E7%9F%BE%E9%90%A9%E6%88%9E%E5%B8%B6%E6%B6%93%E2%82%AC%E9%8A%86%E5%A9%82%E6%A3%AC%E9%94%9B%E4%B8%A3avaAgent%E9%8A%86%8B.html" class="nav-link">
  JavaAgent
</a></li></ul></li><li class="dropdown-item"><h4>
          文档
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/bytecode/asm-document/1%E5%AF%AE%E6%9B%A1%E2%96%88.html" class="nav-link">
  ASM-DOC
</a></li></ul></li></ul></div></div><div class="nav-item"><a href="2023-04-18-tool.html" class="nav-link">
  部署
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="💯实战项目" class="dropdown-title"><span class="title">💯实战项目</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          业务类型
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="../project/big-market/big-market.html" class="nav-link">
  大营销平台系统
</a></li><li class="dropdown-subitem"><a href="../project/chatgpt/chatgpt.html" class="nav-link">
  OpenAi 大模型应用服务体系构建
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/project/lottery/introduce/Lottery%E9%8E%B6%E8%97%89%EE%9A%9B%E7%BB%AF%E8%8D%A4%E7%B2%BA.html" class="nav-link">
  Lottery 分布式抽奖系统
</a></li><li class="dropdown-subitem"><a href="https://www.bugstack.cn/md/project/im/2020-03-04-%E9%8A%86%E5%A5%9Betty+JavaFx%E7%80%B9%E7%82%B4%E5%9E%AC%E9%94%9B%E6%B0%AB%E8%B1%A2%E5%A6%97%E5%B2%84%E6%BD%B0%E9%90%97%E5%A0%9D%E4%BA%95%E6%B7%87%C2%A4%E4%BA%B0%E6%BE%B6%E2%94%BF%E2%82%AC%8B.html" class="nav-link">
  IM Netty 仿PC端微信
</a></li><li class="dropdown-subitem"><a href="../project/chatbot-api/chatbot-api.html" class="nav-link">
  ChatGPT AI 问答助手
</a></li></ul></li><li class="dropdown-item"><h4>
          组件类型
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://bugstack.cn/md/assembly/middleware/2021-03-31-%E3%80%8ASpringBoot%20%E4%B8%AD%E9%97%B4%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%BC%80%E5%8F%91%E3%80%8B%E4%B8%93%E6%A0%8F%E5%B0%8F%E5%86%8C%E4%B8%8A%E7%BA%BF%E5%95%A6%EF%BC%81.html" target="_blank" rel="noopener noreferrer" class="nav-link external">
  SpringBoot 中间件设计和开发
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="https://bugstack.cn/md/assembly/api-gateway/api-gateway.html" target="_blank" rel="noopener noreferrer" class="nav-link external">
  API网关：中间件设计和实践
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li><li class="dropdown-item"><h4>
          其他类型
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="../project/ddd-scene-solution/alipay-sandbox.html" class="nav-link">
  小场景训练营
</a></li></ul></li></ul></div></div><div class="nav-item"><a href="../zsxq/introduce.html" class="nav-link">
  🌍知识星球
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="📝产品" class="dropdown-title"><span class="title">📝产品</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          出版物
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="../product/book/design-pattern.html" class="nav-link">
  2021年出版《重学Java设计模式》
</a></li><li class="dropdown-subitem"><a href="../product/book/mybatis.html" class="nav-link">
  2023年出版《手写MyBatis：渐进式源码实践》
</a></li></ul></li><li class="dropdown-item"><h4>
          PDF —— 加入星球免费获取
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="http://pan.bugstack.cn/?dl=05b281eff1476e2c22eb5114ced0dc4d" target="_blank" rel="noopener noreferrer" class="nav-link external">
  免费《字节码编程手册》(密码：Rlxbh1ia)
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="http://pan.bugstack.cn/?dl=431e114a26f810655d29b6dea54a680f" target="_blank" rel="noopener noreferrer" class="nav-link external">
  免费《重学Java设计模式》——旧版PDF(密码：FWchEAF6)
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="http://pan.bugstack.cn/?dl=dbed614f318bf9fc9d3b034ba9502a3c" target="_blank" rel="noopener noreferrer" class="nav-link external">
  免费《倚天村 • 图解数据结构》(密码：0SjbAlPa)
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="https://download.csdn.net/download/Yao__Shun__Yu/14932325" target="_blank" rel="noopener noreferrer" class="nav-link external">
  付费《Java 面经手册》
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-subitem"><a href="https://download.csdn.net/download/Yao__Shun__Yu/77484299" target="_blank" rel="noopener noreferrer" class="nav-link external">
  付费《IDEA Plugin 开发手册》
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li><li class="dropdown-item"><h4>
          插件
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="../product/idea-plugin/vo2dto.html" class="nav-link">
  💱 IDEA Plugin vo2dto —— 对象转换插件
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="关于" class="dropdown-title"><span class="title">关于</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="../about/me/about-me.html" class="nav-link">
  关于自己
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/about/study/2020-04-30-%E7%92%81%E6%9F%A5%E4%BA%BE%E9%90%9E%E5%97%AD%E7%B4%9D%E9%8D%99%EE%81%87%EE%9B%A6%E6%B5%A3%E7%8A%B3%E6%A7%B8%E6%B6%93%E2%82%AC%E6%B6%93%EE%81%86%E5%9F%8D%E9%8E%B6%E6%A8%BF%E5%90%98%E9%90%A8%E5%8B%AD%E2%96%BC%E6%90%B4%E5%BF%93%E6%86%B3%E9%94%9B%E5%B1%BE%E7%98%AF%E6%B6%93%E6%B0%AD%E5%A3%98%E5%AE%B8%E3%83%A4%E7%B6%94%E9%90%AA%E7%86%BA%E6%AE%91%E6%B6%93%E5%B6%89%E6%B8%B6%E7%91%95%E4%BD%B8%E5%95%80%E9%91%BA%E9%81%8D%E6%8C%B6%E9%8D%A9%E7%A1%85%EE%86%84.html" class="nav-link">
  关于学习
</a></li><li class="dropdown-item"><!----> <a href="https://www.bugstack.cn/md/about/job/2020-04-11-%E5%AE%B8%E3%83%A4%E7%B6%94%E6%B6%93%E3%82%85%E5%8B%BE%E7%BB%A0%E2%82%AC%E9%8D%98%E5%97%97%E5%95%93%E9%8E%B4%E6%84%AF%E7%B9%96%E9%8F%8D%E5%87%A4%E7%B4%9D%E7%92%8B%E4%BD%BD%EE%9B%A6%E6%B5%A3%E7%8A%B2%E6%86%96%E9%94%9B%81.html" class="nav-link">
  关于职场
</a></li></ul></div></div><div class="nav-item"><a href="https://space.bilibili.com/15637440" target="_blank" rel="noopener noreferrer" class="nav-link external">
  B站
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="源码" class="dropdown-title"><span class="title">源码</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://github.com/fuzhengwei" target="_blank" rel="noopener noreferrer" class="nav-link external">
  开源项目 - Github
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://gitcode.net/fuzhengwei" target="_blank" rel="noopener noreferrer" class="nav-link external">
  开源项目 - Gitcode
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://gitcode.net/KnowledgePlanet" target="_blank" rel="noopener noreferrer" class="nav-link external">
  付费项目 - Gitcode
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>环境配置</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="2023-04-18-tool.html" class="sidebar-link">Tool</a></li><li><a href="2023-04-18-docker.html" class="sidebar-link">Docker</a></li><li><a href="2023-04-18-portainer.html" class="sidebar-link">Portainer</a></li><li><a href="2023-04-18-nginx.html" class="sidebar-link">Nginx</a></li><li><a href="https://www.bugstack.cn/md/devops/2019-08-12-windows%E9%90%9C%EE%88%9A%EE%95%A8%E6%B6%93%E5%AC%AA%E7%95%A8%E7%91%81%E5%8D%90lasticsearch6.2.2.html" class="sidebar-link">windows环境下安装elasticsearch6.2.2</a></li><li><a href="https://www.bugstack.cn/md/devops/2019-08-13-elasticsearch-head%E9%8E%BB%E6%8E%8D%E6%AC%A2%E7%80%B9%E5%A4%8E%EE%97%8A.html" class="sidebar-link">elasticsearch-head插件安装</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>服务部署</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="https://www.bugstack.cn/md/devops/2019-11-23-%E9%AA%9E%E6%9C%B5%E7%AC%89%E9%8E%AF%E5%86%B2%E6%83%9E%E9%90%97%E6%B6%9A%E6%AF%8A%E9%94%9B%E5%B1%BC%E7%B5%BE%E9%94%9B%E4%BD%B7%E8%B4%9F%E6%B5%9C%E5%97%98%E5%A6%B8Github%E9%8D%97%E6%B0%AC%EE%85%B9%E7%BB%AE%E5%A4%89%E7%AC%A3%E6%9D%9E%EE%84%82%D0%A9%E9%8D%92%E6%9D%BF%E5%8F%95%E6%B5%BC%E6%A5%80%E5%BD%BF%E9%94%9B%E5%B1%BE%E5%9E%9C%E9%AA%9E%E8%B9%AD%E7%B0%A1%E9%94%9B%81.html" class="sidebar-link">并不想吹牛皮，但！为了把Github博客粉丝转移到公众号，我干了！</a></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html" aria-current="page" class="active sidebar-link">20年3月27日，Github被攻击。我的GitPage博客也挂了，紧急修复之路，也教会你搭建 Jekyll 博客！</a></li><li><a href="https://www.bugstack.cn/md/devops/2020-04-25-%E9%8A%86%E5%A5%9Betty+JavaFx%E7%80%B9%E7%82%B4%E5%9E%AC%E9%94%9B%E6%B0%AB%E8%B1%A2%E5%A6%97%E5%B2%84%E6%BD%B0%E9%90%97%E5%A0%9D%E4%BA%95%E6%B7%87%C2%A4%E4%BA%B0%E6%BE%B6%E2%94%BF%E2%82%AC%E5%AC%A9%E5%94%AC%E9%90%AE%E4%BD%B8%E7%B4%91%E5%A9%A7%90+%E6%B6%93%E5%A9%81%E7%B0%AF%E9%96%AE%E3%84%A7%E8%AE%B2+%E7%91%99%E5%97%9B%EE%95%B6%E7%92%81%E8%8C%B6%D0%92.html" class="sidebar-link">《Netty+JavaFx实战：仿桌面版微信聊天》代码开源、上云部署、视频讲解，只为让你给点个Star！</a></li><li><a href="https://www.bugstack.cn/md/devops/2020-05-10-%E9%91%B7%EE%81%84%E7%BC%93%E6%B5%9C%E6%88%A0%E6%B4%8F%E7%80%9B%E6%A8%BA%E5%81%8DPDF%E6%B6%94%EF%B8%BE%E7%9D%84%E9%8F%80%EE%88%9B%E5%AF%94%E9%8D%A6%E3%84%A7%E5%9A%8E%E6%A3%B0%E5%8B%AE%EE%9D%8D%E9%8D%9C%E5%B1%BC%E7%AC%85%E6%9D%9E%BD.html" class="sidebar-link">有技术就能自建云盘，PDF预览，文件下载。速度与激情掌握在自己手里！</a></li><li><a href="https://www.bugstack.cn/md/devops/2021-01-24-%E6%B6%93%E2%82%AC%E6%BE%B6%E2%95%81%E7%BC%934%E6%B6%93%EE%81%8E%E7%B4%9D%E7%81%8F%E5%BF%93%E5%80%95%E9%8D%9D%E3%83%A6%E6%9A%80%E6%B5%A3%E7%8A%B3%E6%83%8C%E9%8D%97%E6%B0%AC%EE%85%B9%E9%94%9B%81.html" class="sidebar-link">一天建4个，小傅哥教你搭博客！</a></li><li><a href="https://www.bugstack.cn/md/devops/2021-04-11-Cloudreve%20%E9%91%B7%EE%81%84%E7%BC%93%E6%B5%9C%E6%88%A0%E6%B4%8F%E7%80%B9%E7%82%B6%E8%BF%94%E9%94%9B%E5%B1%BE%E5%9E%9C%E7%92%87%E7%BF%A0%E7%B0%A1%E5%A8%8C%E2%80%B2%E6%B1%89%E9%91%B3%E4%BB%8B%E6%AA%BA%E5%AF%B0%E6%A4%BE%E7%B0%A1%E9%8E%B4%E6%88%A0%E6%AE%91%E7%80%B9%E5%BD%92%E5%99%BA%E9%8D%9C%E5%B2%84%E2%82%AC%E7%86%B7%E5%AE%B3%E9%94%9B%81.html" class="sidebar-link">Cloudreve 自建云盘实践，我说了没人能限得了我的容量和速度！</a></li><li><a href="https://www.bugstack.cn/md/devops/2021-06-04-%E9%8A%86%E6%84%AE%E7%B2%A1%E6%A5%A0%E5%B1%BD%E5%9E%8E%E6%B5%9C%EE%82%A0%E2%82%AC%E6%88%A0%E7%88%9C%E9%8D%90%E6%BB%80%E5%A8%87%E9%90%A2%E3%84%A4%E7%B0%AF%E9%8F%88%E5%B6%85%E5%A7%9F%E7%80%9B%EF%B8%BF%E7%AF%84%E9%94%9B%E5%B2%84%E5%84%B4%E9%90%9C%EE%88%9A%EE%95%A8%E9%8A%86%E4%BD%B8%E7%B4%91%E7%BB%94%EE%88%9A%E5%BD%9B%E9%8A%86%E4%BE%80%E5%8E%A4%E9%8D%A9%E7%86%B7%E6%82%95%E9%8A%86%E4%BD%B8%E7%B4%95SSL%E9%8A%86%E4%BD%B9%E6%83%8C%E9%8D%97%E6%B0%AC%EE%85%B9%E9%94%9B%81.html" class="sidebar-link">码农云服务使用学习，部环境、开端口、配域名、弄SSL、搭博客！</a></li><li><a href="https://www.bugstack.cn/md/devops/2021-11-01-%E6%9D%A9%E4%BD%BA%D0%A9vuepress%E9%8D%97%E6%B0%AC%EE%85%B9%E9%9F%AA%E2%95%81%E6%BD%99%E7%BC%81%E5%BF%93%E5%B7%BB.html" class="sidebar-link">迁移vuepress博客的踩坑经历！</a></li><li><a href="https://www.bugstack.cn/md/devops/2021-11-07-%E9%8D%8F%E5%85%85%E7%B0%AC%E9%8E%AC%E5%BA%9D%E7%AE%9E%E6%B5%A3%E8%B7%A8%E6%95%A4%20webhooks%20%E9%91%B7%EE%81%84%E5%A7%A9%E9%96%AE%E3%84%A7%E8%AE%B2%E9%8D%97%E6%B0%AC%EE%85%B9%E9%94%9B%E5%B2%83%EE%87%9B%E7%BC%81%E5%97%98%E6%9A%80%E7%BB%8B%E5%AC%AB%E6%9E%83%E5%A6%97%EF%BD%8F%E7%B4%92.html" class="sidebar-link">关于怎么使用 webhooks 自动部署博客，详细教程文档！</a></li><li><a href="https://www.bugstack.cn/md/devops/2022-03-04-%E9%8F%81%E6%AC%8F%E7%9A%AC%E9%90%A7%E6%88%92%E5%A8%87%E9%90%A2%A8%20docsify%E9%94%9B%E5%B1%BE%E6%83%8C%E5%AF%A4%E8%BD%B0%E7%AB%B4%E6%B6%93%EE%81%87%E9%86%87%E7%BB%A0%E2%82%AC%E9%8D%97%E6%9B%A0%E6%AE%91%E9%8E%B5%E2%82%AC%E7%91%99%E4%BD%B8%E5%B5%86%E9%8E%B5%E2%82%AC%E5%AF%B0%E6%A5%80%E5%B4%A5%E7%80%B9%EE%9D%AE%E7%B4%92.html" class="sidebar-link">教小白使用 docsify，搭建一个贼简单的所见即所得博客！</a></li><li><a href="https://www.bugstack.cn/md/devops/2023-03-25-%E9%8D%8F%E5%B6%88%E5%9E%82%E9%96%AE%E3%84%A7%E8%AE%B2%E9%96%AE%E3%84%A7%E8%AE%B2ChatGPT.html" class="sidebar-link">免费1年服务器，部署个ChatGPT专属网页版！</a></li><li><a href="2024-01-30-vuepress-resume-blog.html" class="sidebar-link">搭建博客，展示过往经历。让面试官更了解我，面试更稳了！</a></li></ul></section></li></ul> </aside> <div><main class="page"> <div class="theme-default-content content__default"><h1 id="_20年3月27日-github被攻击。我的gitpage博客也挂了-紧急修复之路-也教会你搭建-jekyll-博客"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_20年3月27日-github被攻击。我的gitpage博客也挂了-紧急修复之路-也教会你搭建-jekyll-博客" class="header-anchor">#</a> 20年3月27日，Github被攻击。我的GitPage博客也挂了，紧急修复之路，也教会你搭建 Jekyll 博客！</h1> <p>作者：小傅哥
<br>博客：<a href="../zsxq/material/定时任务执行时间的逐步衰减" target="_blank" rel="noopener noreferrer">https://bugstack.cn<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> <br>原文：<a href="https://mp.weixin.qq.com/s/ISA7Nmow-boP1yWStGCuBw" target="_blank" rel="noopener noreferrer">https://mp.weixin.qq.com/s/ISA7Nmow-boP1yWStGCuBw<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="一、前言"><a href="2020-03-28-GithubAndMyBlogAttacked.html#一、前言" class="header-anchor">#</a> 一、前言</h2> <p>万万没想到！<code>Github</code> 竟然受到攻击了！还能让我使用了 <code>GitPage</code> 的博客瘫痪了！</p> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.0.png" loading="lazy" class="lazy"></p> <p>整个网站一下不能访问了，还是有点慌的，毕竟在这之前没有考虑到还能有这事。但虽然没有一个准备好了的预案，但也还是可以使用自己技术把这事搞定，尽快恢复。为了可以尽快恢复博客的访问，我把网站迁移到了 <code>码云</code> 的Gitpage服务，并开启免费一个月使用（挺香）,并迅速搞定配置以及 <code>HTTPS</code>。嗯！迁移过来速度还比之前快了。但是后来发现有些网络环境下竟然不能访问，这又让我感觉不爽了，否则我都快要交钱给 <code>码云</code> (一年90元)。到 <code>码云</code> 官网群问使用这个搭建博客，百度收录吗？也没有人回应。<strong>如果不收录我没必要用了就，是吧。钱花了，事没办！</strong> 不过也还好有 Gitee，否则网站不能那么快恢复，如果按照下面的方式搞，至少 <code>24</code> 小时才能完事。</p> <p>接下来就是将网站迁移到我自己买的服务器上，虽然过程比较坎坷，但终究还是满足了我的需求。提升了网站速度、体验，也可以让网站被百度爬虫收录。如果也有小伙伴遇到这样问题或者想建博客，可以按照我下面的步骤，进行安装 <code>Jekyll</code> 部署博客。</p> <h2 id="二、版本"><a href="2020-03-28-GithubAndMyBlogAttacked.html#二、版本" class="header-anchor">#</a> 二、版本</h2> <blockquote><p>Ruby，一种简单快捷的面向对象（面向对象程序设计）脚本语言，在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发，遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby（Java平台）、IronRuby（.NET平台）等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby，直至1995年12月才正式公开发布于fj（新闻组）。因为Perl发音与6月诞生石pearl（珍珠）相同，因此Ruby以7月诞生石ruby（红宝石）命名。</p></blockquote> <table><thead><tr><th style="text-align:center;">序号</th> <th style="text-align:left;">官网</th> <th style="text-align:left;">描述</th></tr></thead> <tbody><tr><td style="text-align:center;">1</td> <td style="text-align:left;"><a href="https://rubyinstaller.org/downloads/" target="_blank" rel="noopener noreferrer">https://rubyinstaller.org/downloads/<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></td> <td style="text-align:left;">Ruby官网下载</td></tr> <tr><td style="text-align:center;">2</td> <td style="text-align:left;"><a href="https://gems.ruby-china.com/" target="_blank" rel="noopener noreferrer">https://gems.ruby-china.com/<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></td> <td style="text-align:left;">完整 RubyGems 镜像<code>China</code></td></tr> <tr><td style="text-align:center;">3</td> <td style="text-align:left;"><a href="http://www.ruby-lang.org/zh_cn/documentation/" target="_blank" rel="noopener noreferrer">http://www.ruby-lang.org/zh_cn/documentation/<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></td> <td style="text-align:left;">Ruby 编程文档</td></tr> <tr><td style="text-align:center;">4</td> <td style="text-align:left;"><a href="http://jekyllthemes.org/" target="_blank" rel="noopener noreferrer">http://jekyllthemes.org/<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></td> <td style="text-align:left;">jekyll 模版</td></tr> <tr><td style="text-align:center;">5</td> <td style="text-align:left;"><a href="https://www.jekyll.com.cn/docs/" target="_blank" rel="noopener noreferrer">https://www.jekyll.com.cn/docs/<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></td> <td style="text-align:left;">快速入门手册</td></tr></tbody></table> <p>Ruby 的版本比较多，安装方式也分为整体安装和分开安装(Ruby + devkit)，而这些也是最容易出错的地方。有时候安装完了和自己的不博客版本对不上，而导致报错不能编译。目前经过测试此版本<strong>Ruby+Devkit 2.5.7-1 (x64)<strong>比较适合 <code>Jekyll</code> 博客的编译部署。如果你在官网下载速度较慢，可以添加</strong>公众号</strong>：<code>bugstack虫洞栈</code>，回复邮箱。</p> <h2 id="三、安装"><a href="2020-03-28-GithubAndMyBlogAttacked.html#三、安装" class="header-anchor">#</a> 三、安装</h2> <p><strong>Ruby+Devkit 2.5.7-1</strong>，完整包的安装过程比较简单，但需要注意以下几点；</p> <ol><li>安装路径不要有空格，中文等特殊符号</li> <li>安装中的选项内容按照下图执行</li> <li>安装完后需要更换数据源，这些内容会在下文具体执行总展示</li></ol> <h3 id="_1-双击打开软件-rubyinstaller-devkit-2-5-7-1-x64"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-双击打开软件-rubyinstaller-devkit-2-5-7-1-x64" class="header-anchor">#</a> 1. 双击打开软件(rubyinstaller-devkit-2.5.7-1-x64)</h3> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.1" loading="lazy" class="lazy"></p> <h3 id="_2-设置路径和选项"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-设置路径和选项" class="header-anchor">#</a> 2. 设置路径和选项</h3> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-2.1" loading="lazy" class="lazy"></p> <ul><li>注意！千万不要把路径设置有空格、中文、特殊符号</li> <li>注意！前两个是必选项，第三个可以不选</li></ul> <h3 id="_3-继续执行直到完成"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_3-继续执行直到完成" class="header-anchor">#</a> 3. 继续执行直到完成</h3> <blockquote><p>点击下一步即可，不需要更改配置</p></blockquote> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-3.1.png" loading="lazy" class="lazy"></p> <blockquote><p>初步安装成功，点击 <code>Finsh</code></p></blockquote> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-4.1.png" loading="lazy" class="lazy"></p> <p><strong>按照到这我们的软件就已经安装完成了，此时你已经可以执行命令查看版本了。</strong></p> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">Microsoft</span> <span class="token class-name">Windows</span> <span class="token punctuation">[</span>版本 <span class="token number">6.1</span><span class="token number">.7601</span><span class="token punctuation">]</span>
版权所有 <span class="token punctuation">(</span>c<span class="token punctuation">)</span> <span class="token number">2009</span> <span class="token class-name">Microsoft</span> <span class="token class-name">Corporation</span>。保留所有权利。

<span class="token class-name">C</span><span class="token operator">:</span>\<span class="token class-name">Users</span>\xiaofuge<span class="token operator">&gt;</span>ruby <span class="token operator">-</span>v
ruby <span class="token number">2.5</span><span class="token number">.7</span>p206 <span class="token punctuation">(</span><span class="token number">2019</span><span class="token operator">-</span><span class="token number">10</span><span class="token operator">-</span><span class="token number">01</span> revision <span class="token number">67816</span><span class="token punctuation">)</span> <span class="token punctuation">[</span>x64<span class="token operator">-</span>mingw32<span class="token punctuation">]</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><h2 id="四、配置"><a href="2020-03-28-GithubAndMyBlogAttacked.html#四、配置" class="header-anchor">#</a> 四、配置</h2> <p>在安装完成之后还需要执行一系列配置，才能让软件正常工作。并且不注意英文提示的小伙伴，可能你的一个<strong>回车</strong>就把刚安装好的软件卸载了！</p> <h3 id="_1-更换源"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-更换源" class="header-anchor">#</a> 1. 更换源</h3> <blockquote><p>更新 <code>Gem</code></p></blockquote> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">C</span><span class="token operator">:</span>\<span class="token class-name">Users</span>\xiaofuge<span class="token operator">&gt;</span>gem update <span class="token operator">--</span>system
<span class="token class-name">Updating</span> rubygems<span class="token operator">-</span>update
<span class="token class-name">Fetching</span><span class="token operator">:</span> rubygems<span class="token operator">-</span>update<span class="token operator">-</span><span class="token number">2.7</span><span class="token number">.7</span><span class="token punctuation">.</span>gem <span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span><span class="token punctuation">)</span>
<span class="token class-name">Successfully</span> installed rubygems<span class="token operator">-</span>update<span class="token operator">-</span><span class="token number">2.7</span><span class="token number">.7</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><blockquote><p>查看版本</p></blockquote> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">C</span><span class="token operator">:</span>\<span class="token class-name">Users</span>\xiaofuge<span class="token operator">&gt;</span>gem <span class="token operator">-</span>v
<span class="token number">2.7</span><span class="token number">.7</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><blockquote><p>替换源，否则你会下载的很慢</p></blockquote> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">C</span><span class="token operator">:</span>\<span class="token class-name">Users</span>\xiaofuge<span class="token operator">&gt;</span>gem sources <span class="token operator">--</span>add https<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>gems<span class="token punctuation">.</span>ruby<span class="token operator">-</span>china<span class="token punctuation">.</span>com<span class="token operator">/</span> <span class="token operator">--</span>remove http
s<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>rubygems<span class="token punctuation">.</span>org<span class="token operator">/</span>
source https<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>gems<span class="token punctuation">.</span>ruby<span class="token operator">-</span>china<span class="token punctuation">.</span>com<span class="token operator">/</span> already present in the cache
source https<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>rubygems<span class="token punctuation">.</span>org<span class="token operator">/</span> not present in cache
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><blockquote><p>查看新的源</p></blockquote> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">C</span><span class="token operator">:</span>\<span class="token class-name">Users</span>\xiaofuge<span class="token operator">&gt;</span>gem sources <span class="token operator">-</span>l
<span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span> CURRENT SOURCES <span class="token operator">*</span><span class="token operator">*</span><span class="token operator">*</span>

https<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>gems<span class="token punctuation">.</span>ruby<span class="token operator">-</span>china<span class="token punctuation">.</span>com
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><h3 id="_2-基础的安装和配置"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-基础的安装和配置" class="header-anchor">#</a> 2. 基础的安装和配置</h3> <p>接下来的步骤就比较简单了，但整体的过程比较耗时，黑窗口会在我们执行命令后下载大约 <code>600M</code> 的软件。</p> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.5.png" loading="lazy" class="lazy"></p> <blockquote><p>命令 1</p></blockquote> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.6.png" loading="lazy" class="lazy"></p> <blockquote><p>命令 2</p></blockquote> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.7.png" loading="lazy" class="lazy"></p> <blockquote><p>命令 3</p></blockquote> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.8.png" loading="lazy" class="lazy"></p> <p>好！当你顺利安装到此后，你的软件就已经安装完成，可以使用了！</p> <h2 id="五、安装jekyll"><a href="2020-03-28-GithubAndMyBlogAttacked.html#五、安装jekyll" class="header-anchor">#</a> 五、安装Jekyll</h2> <p><code>Ruby</code> 软件已经安装完成，接下来就是我们的博客的相关内容的安装了。</p> <blockquote><p>检查版本并安装</p></blockquote> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">E</span><span class="token operator">:</span>\<span class="token operator">&gt;</span>gem <span class="token operator">-</span>v
<span class="token number">2.7</span><span class="token number">.7</span>

<span class="token class-name">E</span><span class="token operator">:</span>\<span class="token operator">&gt;</span>gem install jekyll
<span class="token class-name">Fetching</span><span class="token operator">:</span> public_suffix<span class="token operator">-</span><span class="token number">4.0</span><span class="token number">.3</span><span class="token punctuation">.</span>gem <span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span><span class="token punctuation">)</span>
<span class="token class-name">Successfully</span> installed public_suffix<span class="token operator">-</span><span class="token number">4.0</span><span class="token number">.3</span>
<span class="token class-name">Fetching</span><span class="token operator">:</span> addressable<span class="token operator">-</span><span class="token number">2.7</span><span class="token number">.0</span><span class="token punctuation">.</span>gem <span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span><span class="token punctuation">)</span>
<span class="token class-name">Successfully</span> installed addressable<span class="token operator">-</span><span class="token number">2.7</span><span class="token number">.0</span>
<span class="token class-name">Fetching</span><span class="token operator">:</span> colorator<span class="token operator">-</span><span class="token number">1.1</span><span class="token number">.0</span><span class="token punctuation">.</span>gem <span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span><span class="token punctuation">)</span>
<span class="token class-name">Successfully</span> installed colorator<span class="token operator">-</span><span class="token number">1.1</span><span class="token number">.0</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
ass<span class="token operator">-</span>converter<span class="token punctuation">,</span> rb<span class="token operator">-</span>fsevent<span class="token punctuation">,</span> rb<span class="token operator">-</span>inotify<span class="token punctuation">,</span> listen<span class="token punctuation">,</span> jekyll<span class="token operator">-</span>watch<span class="token punctuation">,</span> kramdown<span class="token punctuation">,</span> kramdown<span class="token operator">-</span>
parser<span class="token operator">-</span>gfm<span class="token punctuation">,</span> liquid<span class="token punctuation">,</span> mercenary<span class="token punctuation">,</span> forwardable<span class="token operator">-</span>extended<span class="token punctuation">,</span> pathutil<span class="token punctuation">,</span> rouge<span class="token punctuation">,</span> safe_yaml<span class="token punctuation">,</span>
 unicode<span class="token operator">-</span>display_width<span class="token punctuation">,</span> terminal<span class="token operator">-</span>table<span class="token punctuation">,</span> jekyll after <span class="token number">33</span> seconds
<span class="token number">26</span> gems installed
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br></div></div><blockquote><p>查看安装的Jekyll版本</p></blockquote> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">E</span><span class="token operator">:</span>\<span class="token operator">&gt;</span>jekyll <span class="token operator">-</span>v
jekyll <span class="token number">4.0</span><span class="token number">.0</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><h2 id="六、创建博客"><a href="2020-03-28-GithubAndMyBlogAttacked.html#六、创建博客" class="header-anchor">#</a> 六、创建博客</h2> <p>Jekyll 给我们提供了创建博客的命令，你只需要选择好自己文件夹地址，进入执行即可。</p> <h3 id="_1-进入本地站点"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-进入本地站点" class="header-anchor">#</a> 1. 进入本地站点</h3> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">C</span><span class="token operator">:</span>\<span class="token class-name">Users</span>\xiaofuge<span class="token operator">&gt;</span><span class="token class-name">E</span><span class="token operator">:</span>

<span class="token class-name">E</span><span class="token operator">:</span>\<span class="token operator">&gt;</span>cd <span class="token class-name">E</span><span class="token operator">:</span>\itstack
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><h3 id="_2-创建博客"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-创建博客" class="header-anchor">#</a> 2. 创建博客</h3> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">E</span><span class="token operator">:</span>\<span class="token operator">&gt;</span>jekyll <span class="token keyword">new</span> myblog
<span class="token class-name">Running</span> bundle install in <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>myblog<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
  <span class="token class-name">Bundler</span><span class="token operator">:</span> <span class="token class-name">Fetching</span> source index from https<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>rubygems<span class="token punctuation">.</span>org<span class="token operator">/</span>
  <span class="token class-name">Bundler</span><span class="token operator">:</span> <span class="token class-name">Resolving</span> dependencies<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
  <span class="token class-name">Bundler</span><span class="token operator">:</span> <span class="token class-name">Using</span> public_suffix <span class="token number">4.0</span><span class="token number">.3</span>
  <span class="token class-name">Bundler</span><span class="token operator">:</span> <span class="token class-name">Using</span> addressable <span class="token number">2.7</span><span class="token number">.0</span>
  <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
  <span class="token class-name">New</span> jekyll site installed in <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span><span class="token class-name"><span class="token namespace">myblog<span class="token punctuation">.</span></span>
E</span><span class="token operator">:</span>\<span class="token operator">&gt;</span>cd myblog
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br></div></div><h3 id="_3-编译博客"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_3-编译博客" class="header-anchor">#</a> 3. 编译博客</h3> <p>这里执行的编译是默认本地编译，也就是编译后文中都是 <code>localhost:4000</code> 地址开头，不要把这回内容传到服务端。</p> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">E</span><span class="token operator">:</span>\myblog<span class="token operator">&gt;</span>jekyll build
<span class="token class-name">Configuration</span> file<span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>myblog<span class="token operator">/</span>_config<span class="token punctuation">.</span>yml
            <span class="token class-name">Source</span><span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>myblog
       <span class="token class-name">Destination</span><span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>myblog<span class="token operator">/</span>_site
 <span class="token class-name">Incremental</span> build<span class="token operator">:</span> <span class="token class-name"><span class="token namespace">disabled<span class="token punctuation">.</span></span> Enable</span> <span class="token keyword">with</span> <span class="token operator">--</span>incremental
      <span class="token class-name">Generating</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
       <span class="token class-name">Jekyll</span> <span class="token class-name">Feed</span><span class="token operator">:</span> <span class="token class-name">Generating</span> feed <span class="token keyword">for</span> posts
                    done in <span class="token number">1.184</span> <span class="token class-name"><span class="token namespace">seconds<span class="token punctuation">.</span></span>
 Auto</span><span class="token operator">-</span>regeneration<span class="token operator">:</span> <span class="token class-name"><span class="token namespace">disabled<span class="token punctuation">.</span></span> Use</span> <span class="token operator">--</span>watch <span class="token keyword">to</span> <span class="token namespace">enable<span class="token punctuation">.</span></span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br></div></div><ul><li>编译好后看到一个 <code>_site</code> 的文件夹，这里就是我们的静态博客内容。</li></ul> <h3 id="_4-运行预览"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_4-运行预览" class="header-anchor">#</a> 4. 运行预览</h3> <p>如果在本地我们没编译而是执行运行预览也是可以的，他会自动进行编译。</p> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">E</span><span class="token operator">:</span>\myblog<span class="token operator">&gt;</span>jekyll s
<span class="token class-name">Configuration</span> file<span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>myblog<span class="token operator">/</span>_config<span class="token punctuation">.</span>yml
            <span class="token class-name">Source</span><span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>myblog
       <span class="token class-name">Destination</span><span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>myblog<span class="token operator">/</span>_site
 <span class="token class-name">Incremental</span> build<span class="token operator">:</span> <span class="token class-name"><span class="token namespace">disabled<span class="token punctuation">.</span></span> Enable</span> <span class="token keyword">with</span> <span class="token operator">--</span>incremental
      <span class="token class-name">Generating</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
       <span class="token class-name">Jekyll</span> <span class="token class-name">Feed</span><span class="token operator">:</span> <span class="token class-name">Generating</span> feed <span class="token keyword">for</span> posts
                    done in <span class="token number">0.847</span> <span class="token class-name"><span class="token namespace">seconds<span class="token punctuation">.</span></span>
 Auto</span><span class="token operator">-</span>regeneration<span class="token operator">:</span> enabled <span class="token keyword">for</span> '<span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>myblog'
    <span class="token class-name">Server</span> address<span class="token operator">:</span> http<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span><span class="token number">127.0</span><span class="token number">.0</span><span class="token number">.1</span><span class="token operator">:</span><span class="token number">4000</span><span class="token operator">/</span>
  <span class="token class-name">Server</span> running<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> press ctrl<span class="token operator">-</span>c <span class="token keyword">to</span> <span class="token namespace">stop<span class="token punctuation">.</span></span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><ul><li>这里可以指定端口和IP，也可以控制后台运行，具体可以看到 <code>十、助记指令</code></li></ul> <h3 id="_5-运行效果"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_5-运行效果" class="header-anchor">#</a> 5. 运行效果</h3> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.9.png" loading="lazy" class="lazy"></p> <ul><li>具体如何使用Jekyll编写博客，可以参考官网文档</li></ul> <blockquote><p>博客结构</p></blockquote> <div class="language-java line-numbers-mode"><pre class="language-java"><code>├── _config<span class="token punctuation">.</span>yml
├── _includes
<span class="token operator">|</span>   ├── footer<span class="token punctuation">.</span>html
<span class="token operator">|</span>   └── header<span class="token punctuation">.</span>html
├── _layouts
<span class="token operator">|</span>   ├── <span class="token keyword">default</span><span class="token punctuation">.</span>html
<span class="token operator">|</span>   ├── post<span class="token punctuation">.</span>html
<span class="token operator">|</span>   └── page<span class="token punctuation">.</span>html
├── _posts
<span class="token operator">|</span>   └── <span class="token number">2020</span><span class="token operator">-</span><span class="token number">03</span><span class="token operator">-</span><span class="token number">28</span><span class="token operator">-</span>welcome<span class="token operator">-</span><span class="token keyword">to</span><span class="token operator">-</span>jekyll<span class="token punctuation">.</span>markdown
├── _sass
<span class="token operator">|</span>   ├── _base<span class="token punctuation">.</span>scss
<span class="token operator">|</span>   ├── _layout<span class="token punctuation">.</span>scss
<span class="token operator">|</span>   └── _syntax<span class="token operator">-</span>highlighting<span class="token punctuation">.</span>scss
├── about<span class="token punctuation">.</span>md
├── css
<span class="token operator">|</span>   └── main<span class="token punctuation">.</span>scss
├── feed<span class="token punctuation">.</span>xml
└── index<span class="token punctuation">.</span>html
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br></div></div><h2 id="七、克隆博客-使用模版"><a href="2020-03-28-GithubAndMyBlogAttacked.html#七、克隆博客-使用模版" class="header-anchor">#</a> 七、克隆博客(使用模版)</h2> <p>好！接下来就是我们的<strong>重点</strong>内容了，虽然默认模版也不难看，但终究不是我们的博客。在这里我的目标是将个人博客进行本地编译运行。如果你有喜欢的模版或者是官网，或者是别人个Github，可以下载到自己本地。</p> <h3 id="_1-下载bundler"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-下载bundler" class="header-anchor">#</a> 1. 下载bundler</h3> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">E</span><span class="token operator">:</span>\itstack\gitee<span class="token punctuation">.</span>com\fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token operator">&gt;</span>gem install bundler
<span class="token class-name">Fetching</span><span class="token operator">:</span> bundler<span class="token operator">-</span><span class="token number">2.1</span><span class="token number">.4</span><span class="token punctuation">.</span>gem <span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span><span class="token punctuation">)</span>
bundler's executable <span class="token string">&quot;bundle&quot;</span> conflicts <span class="token keyword">with</span> <span class="token class-name">D</span><span class="token operator">:</span><span class="token operator">/</span><span class="token class-name">Ruby25</span><span class="token operator">-</span>x64<span class="token operator">/</span>bin<span class="token operator">/</span>bundle
<span class="token class-name">Overwrite</span> the executable<span class="token operator">?</span> <span class="token punctuation">[</span>yN<span class="token punctuation">]</span>  n
ERROR<span class="token operator">:</span>  <span class="token class-name">Error</span> installing bundler<span class="token operator">:</span>
        <span class="token string">&quot;bundle&quot;</span> from bundler conflicts <span class="token keyword">with</span> <span class="token class-name">D</span><span class="token operator">:</span><span class="token operator">/</span><span class="token class-name">Ruby25</span><span class="token operator">-</span>x64<span class="token operator">/</span>bin<span class="token operator">/</span>bundle
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br></div></div><h3 id="_2-安装环境"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-安装环境" class="header-anchor">#</a> 2. 安装环境</h3> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">E</span><span class="token operator">:</span>\itstack\gitee<span class="token punctuation">.</span>com\fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token operator">&gt;</span>bundle install
<span class="token class-name">Fetching</span> gem metadata from http<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>gems<span class="token punctuation">.</span>ruby<span class="token operator">-</span>china<span class="token punctuation">.</span>com<span class="token operator">/</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token class-name">Using</span> rake <span class="token number">12.3</span><span class="token number">.0</span>
<span class="token class-name">Fetching</span> concurrent<span class="token operator">-</span>ruby <span class="token number">1.0</span><span class="token number">.5</span>
<span class="token class-name">Installing</span> concurrent<span class="token operator">-</span>ruby <span class="token number">1.0</span><span class="token number">.5</span>
<span class="token class-name">Fetching</span> i18n <span class="token number">0.9</span><span class="token number">.1</span>
<span class="token class-name">Installing</span> i18n <span class="token number">0.9</span><span class="token number">.1</span>
<span class="token class-name">Using</span> minitest <span class="token number">5.10</span><span class="token number">.3</span>
<span class="token class-name">Using</span> thread_safe <span class="token number">0.3</span><span class="token number">.6</span>
<span class="token class-name">Fetching</span> tzinfo <span class="token number">1.2</span><span class="token number">.4</span>
<span class="token class-name">Installing</span> tzinfo <span class="token number">1.2</span><span class="token number">.4</span>
<span class="token class-name">Fetching</span> activesupport <span class="token number">4.2</span><span class="token number">.10</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
lockfile <span class="token punctuation">(</span>nokogiri <span class="token punctuation">(</span><span class="token operator">~</span><span class="token operator">&gt;</span> <span class="token number">1.6</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>
<span class="token class-name">Either</span> installing <span class="token keyword">with</span> `<span class="token operator">--</span>full<span class="token operator">-</span>index` or running `bundle update
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br></div></div><h3 id="_3-更新bundle-按需执行"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_3-更新bundle-按需执行" class="header-anchor">#</a> 3. 更新bundle(按需执行)</h3> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">E</span><span class="token operator">:</span>\itstack\gitee<span class="token punctuation">.</span>com\fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token operator">&gt;</span>bundle update
<span class="token class-name">Fetching</span> gem metadata from http<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>gems<span class="token punctuation">.</span>ruby<span class="token operator">-</span>china<span class="token punctuation">.</span>com<span class="token operator">/</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token class-name">Fetching</span> gem metadata from http<span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span>gems<span class="token punctuation">.</span>ruby<span class="token operator">-</span>china<span class="token punctuation">.</span>com<span class="token operator">/</span><span class="token punctuation">.</span>
<span class="token class-name">Resolving</span> dependencies<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token class-name">Fetching</span> rake <span class="token number">13.0</span><span class="token number">.1</span> <span class="token punctuation">(</span>was <span class="token number">12.3</span><span class="token number">.0</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br></div></div><h3 id="_4-编译"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_4-编译" class="header-anchor">#</a> 4. 编译</h3> <div class="language-java line-numbers-mode"><pre class="language-java"><code>bundle exec jekyll build 
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.10.png" loading="lazy" class="lazy"></p> <h3 id="_5-运行"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_5-运行" class="header-anchor">#</a> 5. 运行</h3> <div class="language-java line-numbers-mode"><pre class="language-java"><code>bundle exec jekyll s
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><blockquote><p>http://localhost:4000/</p></blockquote> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.11.png" loading="lazy" class="lazy"></p> <ul><li>可以看到我们已经很顺利的运行并访问了博客，效果还不错。</li> <li>这会虽然是本地运行，所以里面的链接都是 <code>http://localhost:4000/</code> ，不能用于服务端部署。</li></ul> <h2 id="八、手动发布"><a href="2020-03-28-GithubAndMyBlogAttacked.html#八、手动发布" class="header-anchor">#</a> 八、手动发布</h2> <p>如果部署到服务端，那么我们编译后里面的链接地址都肯定以我们的域名开始，例如；<code>https://bugstack.cn/</code>。接下来我们开始执行服务端部署的编译和使用。</p> <h3 id="_1-清空和重新构建"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-清空和重新构建" class="header-anchor">#</a> 1. 清空和重新构建</h3> <div class="language-java line-numbers-mode"><pre class="language-java"><code><span class="token class-name">Microsoft</span> <span class="token class-name">Windows</span> <span class="token punctuation">[</span>版本 <span class="token number">6.1</span><span class="token number">.7601</span><span class="token punctuation">]</span>
版权所有 <span class="token punctuation">(</span>c<span class="token punctuation">)</span> <span class="token number">2009</span> <span class="token class-name">Microsoft</span> <span class="token class-name">Corporation</span>。保留所有权利。

<span class="token class-name">C</span><span class="token operator">:</span>\<span class="token class-name">Users</span>\fuzhengwei<span class="token operator">&gt;</span><span class="token class-name">E</span><span class="token operator">:</span>

<span class="token class-name">E</span><span class="token operator">:</span>\<span class="token operator">&gt;</span>cd <span class="token class-name">E</span><span class="token operator">:</span>\itstack\gitee<span class="token punctuation">.</span>com\fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io

<span class="token class-name">E</span><span class="token operator">:</span>\itstack\gitee<span class="token punctuation">.</span>com\fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token operator">&gt;</span>bundle exec jekyll clean
<span class="token class-name">Configuration</span> file<span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>itstack<span class="token operator">/</span>gitee<span class="token punctuation">.</span>com<span class="token operator">/</span>fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token operator">/</span>_config<span class="token punctuation">.</span>yml
           <span class="token class-name">Cleaner</span><span class="token operator">:</span> <span class="token class-name">Removing</span> <span class="token punctuation">.</span>/_site<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
           <span class="token class-name">Cleaner</span><span class="token operator">:</span> <span class="token class-name">Nothing</span> <span class="token keyword">to</span> <span class="token keyword">do</span> <span class="token keyword">for</span> <span class="token punctuation">.</span>/<span class="token punctuation">.</span>jekyll<span class="token operator">-</span><span class="token class-name"><span class="token namespace">metadata<span class="token punctuation">.</span></span>
           Cleaner</span><span class="token operator">:</span> <span class="token class-name">Removing</span> <span class="token punctuation">.</span>/<span class="token punctuation">.</span>jekyll<span class="token operator">-</span>cache<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
           <span class="token class-name">Cleaner</span><span class="token operator">:</span> <span class="token class-name">Nothing</span> <span class="token keyword">to</span> <span class="token keyword">do</span> <span class="token keyword">for</span> <span class="token punctuation">.</span>sass<span class="token operator">-</span><span class="token class-name"><span class="token namespace">cache<span class="token punctuation">.</span></span>

E</span><span class="token operator">:</span>\itstack\gitee<span class="token punctuation">.</span>com\fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token operator">&gt;</span>bundle exec jekyll build
<span class="token class-name">Configuration</span> file<span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>itstack<span class="token operator">/</span>gitee<span class="token punctuation">.</span>com<span class="token operator">/</span>fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token operator">/</span>_config<span class="token punctuation">.</span>yml
            <span class="token class-name">Source</span><span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>itstack<span class="token operator">/</span>gitee<span class="token punctuation">.</span>com<span class="token operator">/</span>fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io
       <span class="token class-name">Destination</span><span class="token operator">:</span> <span class="token class-name">E</span><span class="token operator">:</span><span class="token operator">/</span>itstack<span class="token operator">/</span>gitee<span class="token punctuation">.</span>com<span class="token operator">/</span>fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token operator">/</span>_site
 <span class="token class-name">Incremental</span> build<span class="token operator">:</span> <span class="token class-name"><span class="token namespace">disabled<span class="token punctuation">.</span></span> Enable</span> <span class="token keyword">with</span> <span class="token operator">--</span>incremental
      <span class="token class-name">Generating</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
   <span class="token class-name">GitHub</span> <span class="token class-name">Metadata</span><span class="token operator">:</span> <span class="token class-name">No</span> <span class="token class-name">GitHub</span> API authentication could be <span class="token class-name"><span class="token namespace">found<span class="token punctuation">.</span></span> Some</span> fields may
 be missing or have incorrect data<span class="token punctuation">.</span>
                    done in <span class="token number">18.102</span> <span class="token class-name"><span class="token namespace">seconds<span class="token punctuation">.</span></span>
 Auto</span><span class="token operator">-</span>regeneration<span class="token operator">:</span> <span class="token class-name"><span class="token namespace">disabled<span class="token punctuation">.</span></span> Use</span> <span class="token operator">--</span>watch <span class="token keyword">to</span> <span class="token namespace">enable<span class="token punctuation">.</span></span>

<span class="token class-name">E</span><span class="token operator">:</span>\itstack\gitee<span class="token punctuation">.</span>com\fuzhengwei<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token operator">&gt;</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br></div></div><ul><li>在以上我们分别执行了清空(<code>bundle exec jekyll clean</code>)和构建(<code>bundle exec jekyll build</code>)，接下来看以看到文件下的 <code>_site</code> 内容的生成。</li></ul> <h3 id="_2-部署到远程服务器"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-部署到远程服务器" class="header-anchor">#</a> 2. 部署到远程服务器</h3> <p>远程服务器的部署主要依赖于大家个子使用的服务器类型，我的手里有一台云虚拟机，通过FTP的方式进行部署即可。如下；</p> <p><img alt="" data-src="https://bugstack.cn/assets/images/2020/itstack-code-life-1.12.png" loading="lazy" class="lazy"></p> <ul><li>部署以后我们在线网站就可以访问了；<a href="../zsxq/material/定时任务执行时间的逐步衰减" target="_blank" rel="noopener noreferrer">https://bugstack.cn/<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul> <h2 id="九、自动发布"><a href="2020-03-28-GithubAndMyBlogAttacked.html#九、自动发布" class="header-anchor">#</a> 九、自动发布</h2> <p>如果每次都是这样去本地编译在部署到服务端，代码又得维护在 <code>GitHub</code> 还是比较麻烦的。可以使用；<code>Github -&gt; Travis CI -&gt; Docker-&gt; VPS</code>。的方式进行部署，不过还得花点钱买服务器。</p> <ul><li>本地提交博客 Markdown 文件 到 Github 源文件 repository</li> <li>Github 触发 Travis CI 执行自动编译</li> <li>Travis CI 编译后 push 静态文件到 Github 静态文件 repository</li> <li>Travis CI 通知 Docker 重建镜像（预计 5 分钟）</li> <li>服务器休眠 5 分钟后，Travis CI 通知服务器</li> <li>服务器拉取最新镜像，然后停止并删除原容器，用最新镜像重建容器</li></ul> <p><em>这种方式目前我还没有钱和时间去折腾，等后面我的博客访问量和内容更大了以后在投入经历去搞！</em></p> <h2 id="十、助记指令"><a href="2020-03-28-GithubAndMyBlogAttacked.html#十、助记指令" class="header-anchor">#</a> 十、助记指令</h2> <table><thead><tr><th style="text-align:center;">序号</th> <th style="text-align:left;">指令</th> <th style="text-align:left;">说明</th></tr></thead> <tbody><tr><td style="text-align:center;">1</td> <td style="text-align:left;">ruby -v</td> <td style="text-align:left;">查看Ruby版本</td></tr> <tr><td style="text-align:center;">2</td> <td style="text-align:left;">gem update</td> <td style="text-align:left;">更新</td></tr> <tr><td style="text-align:center;">3</td> <td style="text-align:left;"><code>gem -v</code></td> <td style="text-align:left;">查看Gem版本</td></tr> <tr><td style="text-align:center;">4</td> <td style="text-align:left;">gem install jekyll</td> <td style="text-align:left;">安装jekyll</td></tr> <tr><td style="text-align:center;">5</td> <td style="text-align:left;">gem install bundler</td> <td style="text-align:left;">下载bundler</td></tr> <tr><td style="text-align:center;">6</td> <td style="text-align:left;"><code>gem install jekyll-paginate</code></td> <td style="text-align:left;">下载jeky-paginate</td></tr> <tr><td style="text-align:center;">7</td> <td style="text-align:left;">git clone git@github.com:xiaofuge/xiaofuge.github.io.git</td> <td style="text-align:left;">克隆主题(cd到xiaofuge.github.io，执行jekyll serve 可以在http://localhost:4000看到效果)</td></tr> <tr><td style="text-align:center;">8</td> <td style="text-align:left;"><code>gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/</code></td> <td style="text-align:left;">更换源<a href="https://gems.ruby-china.com/" target="_blank" rel="noopener noreferrer">https://gems.ruby-china.com<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></td></tr> <tr><td style="text-align:center;">9</td> <td style="text-align:left;">jekyll new myblog</td> <td style="text-align:left;">初始化默认博客</td></tr> <tr><td style="text-align:center;">10</td> <td style="text-align:left;">bundle install</td> <td style="text-align:left;">进入博客文件夹执行初始化</td></tr> <tr><td style="text-align:center;">11</td> <td style="text-align:left;">jekyll build</td> <td style="text-align:left;">本地编译默认所有链接为http://localhost</td></tr> <tr><td style="text-align:center;">13</td> <td style="text-align:left;"><code>jekyll build --source &lt;source&gt; --destination &lt;destination&gt;</code></td> <td style="text-align:left;">编译指定的文件夹，同时可以设定到指定的地方</td></tr> <tr><td style="text-align:center;">12</td> <td style="text-align:left;">jekyll build --destination</td> <td style="text-align:left;">编译到指定地方</td></tr> <tr><td style="text-align:center;">14</td> <td style="text-align:left;">jekyll build --watch</td> <td style="text-align:left;">编译后好自动监听文件变化 自动编译</td></tr> <tr><td style="text-align:center;">15</td> <td style="text-align:left;">bundle exec jekyll build</td> <td style="text-align:left;">您只需构建您的站点(而不是在本地提供),然后您可以将生成的文件上传到您的服务器（这将生成与_config.yml中配置变量url的值的规范链接）</td></tr> <tr><td style="text-align:center;">16</td> <td style="text-align:left;">jekyll clean</td> <td style="text-align:left;">清空编译_site</td></tr> <tr><td style="text-align:center;">17</td> <td style="text-align:left;">jekyll serve</td> <td style="text-align:left;">本地启动服务</td></tr> <tr><td style="text-align:center;">18</td> <td style="text-align:left;">jekyll serve --host 0.0.0.0 --port 80</td> <td style="text-align:left;">指定ip和端口启动</td></tr> <tr><td style="text-align:center;">19</td> <td style="text-align:left;">nohup jekyll serve &amp;</td> <td style="text-align:left;">后台运行</td></tr> <tr><td style="text-align:center;">20</td> <td style="text-align:left;">ps -axu</td> <td style="text-align:left;">grep jekyll</td></tr> <tr><td style="text-align:center;">21</td> <td style="text-align:left;">kill -9 [pid]</td> <td style="text-align:left;">杀死进程</td></tr></tbody></table> <h2 id="十一、总结"><a href="2020-03-28-GithubAndMyBlogAttacked.html#十一、总结" class="header-anchor">#</a> 十一、总结</h2> <ul><li>通过这次 <code>GitHub</code> 挂了，也彻底让我的博客又得花钱维护了。不花点钱是真不行！以前我忍受了；速度、收录、体验，但是突然的一挂，啥都拜拜了。所以只能挂到自己的服务器上，还好价格也不贵！毕竟是一个只能支持 PHP、ASP的虚拟机。</li> <li>从没有那件事情是可以轻轻松松的，在 <code>天灾人祸</code> 来临的时候，能帮你抵挡的都是你日积月累的能力。就像；<strong>是时候展示真正的技术了！</strong></li> <li><code>Jekyll</code> 搭建的博客还是蛮好看的，也蛮容易维护的。技术人员还是要有自己的博客，通过不停的折腾从里面不断的获取各个技术点的突破。</li></ul></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/fuzhengwei/CodeGuide/edit/master/docs/md/devops/2020-03-28-GithubAndMyBlogAttacked.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">上次更新: </span> <span class="time">2021/10/23</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
        ←
        <a href="https://www.bugstack.cn/md/devops/2019-11-23-%E9%AA%9E%E6%9C%B5%E7%AC%89%E9%8E%AF%E5%86%B2%E6%83%9E%E9%90%97%E6%B6%9A%E6%AF%8A%E9%94%9B%E5%B1%BC%E7%B5%BE%E9%94%9B%E4%BD%B7%E8%B4%9F%E6%B5%9C%E5%97%98%E5%A6%B8Github%E9%8D%97%E6%B0%AC%EE%85%B9%E7%BB%AE%E5%A4%89%E7%AC%A3%E6%9D%9E%EE%84%82%D0%A9%E9%8D%92%E6%9D%BF%E5%8F%95%E6%B5%BC%E6%A5%80%E5%BD%BF%E9%94%9B%E5%B1%BE%E5%9E%9C%E9%AA%9E%E8%B9%AD%E7%B0%A1%E9%94%9B%81.html" class="prev">
          并不想吹牛皮，但！为了把Github博客粉丝转移到公众号，我干了！
        </a></span> <span class="next"><a href="https://www.bugstack.cn/md/devops/2020-04-25-%E9%8A%86%E5%A5%9Betty+JavaFx%E7%80%B9%E7%82%B4%E5%9E%AC%E9%94%9B%E6%B0%AB%E8%B1%A2%E5%A6%97%E5%B2%84%E6%BD%B0%E9%90%97%E5%A0%9D%E4%BA%95%E6%B7%87%C2%A4%E4%BA%B0%E6%BE%B6%E2%94%BF%E2%82%AC%E5%AC%A9%E5%94%AC%E9%90%AE%E4%BD%B8%E7%B4%91%E5%A9%A7%90+%E6%B6%93%E5%A9%81%E7%B0%AF%E9%96%AE%E3%84%A7%E8%AE%B2+%E7%91%99%E5%97%9B%EE%95%B6%E7%92%81%E8%8C%B6%D0%92.html">
          《Netty+JavaFx实战：仿桌面版微信聊天》代码开源、上云部署、视频讲解，只为让你给点个Star！
        </a>
        →
      </span></p></div> </main></div> <aside class="page-sidebar"> <div class="page-side-toolbar"><div class="option-box-toc-fixed"><div class="toc-container-sidebar"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="max-height:650px"><div style="font-weight:bold;text-align:center;">20年3月27日，Github被攻击。我的GitPage博客也挂了，紧急修复之路，也教会你搭建 Jekyll 博客！</div> <hr> <div class="toc-box"><ul class="toc-sidebar-links"><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#一、前言" class="toc-sidebar-link">一、前言</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#二、版本" class="toc-sidebar-link">二、版本</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#三、安装" class="toc-sidebar-link">三、安装</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-双击打开软件-rubyinstaller-devkit-2-5-7-1-x64" class="toc-sidebar-link">1. 双击打开软件(rubyinstaller-devkit-2.5.7-1-x64)</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-设置路径和选项" class="toc-sidebar-link">2. 设置路径和选项</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_3-继续执行直到完成" class="toc-sidebar-link">3. 继续执行直到完成</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#四、配置" class="toc-sidebar-link">四、配置</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-更换源" class="toc-sidebar-link">1. 更换源</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-基础的安装和配置" class="toc-sidebar-link">2. 基础的安装和配置</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#五、安装jekyll" class="toc-sidebar-link">五、安装Jekyll</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#六、创建博客" class="toc-sidebar-link">六、创建博客</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-进入本地站点" class="toc-sidebar-link">1. 进入本地站点</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-创建博客" class="toc-sidebar-link">2. 创建博客</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_3-编译博客" class="toc-sidebar-link">3. 编译博客</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_4-运行预览" class="toc-sidebar-link">4. 运行预览</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_5-运行效果" class="toc-sidebar-link">5. 运行效果</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#七、克隆博客-使用模版" class="toc-sidebar-link">七、克隆博客(使用模版)</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-下载bundler" class="toc-sidebar-link">1. 下载bundler</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-安装环境" class="toc-sidebar-link">2. 安装环境</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_3-更新bundle-按需执行" class="toc-sidebar-link">3. 更新bundle(按需执行)</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_4-编译" class="toc-sidebar-link">4. 编译</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_5-运行" class="toc-sidebar-link">5. 运行</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#八、手动发布" class="toc-sidebar-link">八、手动发布</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-清空和重新构建" class="toc-sidebar-link">1. 清空和重新构建</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-部署到远程服务器" class="toc-sidebar-link">2. 部署到远程服务器</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#九、自动发布" class="toc-sidebar-link">九、自动发布</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#十、助记指令" class="toc-sidebar-link">十、助记指令</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#十一、总结" class="toc-sidebar-link">十一、总结</a><ul class="toc-sidebar-sub-headers"></ul></li></ul></div></div></div></div></div> <div class="option-box-toc-over"><img src="../../images/system/toc.png" class="nozoom"> <span class="show-txt">目录</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="max-height:550px"><div style="font-weight:bold;text-align:center;">20年3月27日，Github被攻击。我的GitPage博客也挂了，紧急修复之路，也教会你搭建 Jekyll 博客！</div> <hr> <div class="toc-box"><ul class="toc-sidebar-links"><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#一、前言" class="toc-sidebar-link">一、前言</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#二、版本" class="toc-sidebar-link">二、版本</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#三、安装" class="toc-sidebar-link">三、安装</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-双击打开软件-rubyinstaller-devkit-2-5-7-1-x64" class="toc-sidebar-link">1. 双击打开软件(rubyinstaller-devkit-2.5.7-1-x64)</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-设置路径和选项" class="toc-sidebar-link">2. 设置路径和选项</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_3-继续执行直到完成" class="toc-sidebar-link">3. 继续执行直到完成</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#四、配置" class="toc-sidebar-link">四、配置</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-更换源" class="toc-sidebar-link">1. 更换源</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-基础的安装和配置" class="toc-sidebar-link">2. 基础的安装和配置</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#五、安装jekyll" class="toc-sidebar-link">五、安装Jekyll</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#六、创建博客" class="toc-sidebar-link">六、创建博客</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-进入本地站点" class="toc-sidebar-link">1. 进入本地站点</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-创建博客" class="toc-sidebar-link">2. 创建博客</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_3-编译博客" class="toc-sidebar-link">3. 编译博客</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_4-运行预览" class="toc-sidebar-link">4. 运行预览</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_5-运行效果" class="toc-sidebar-link">5. 运行效果</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#七、克隆博客-使用模版" class="toc-sidebar-link">七、克隆博客(使用模版)</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-下载bundler" class="toc-sidebar-link">1. 下载bundler</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-安装环境" class="toc-sidebar-link">2. 安装环境</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_3-更新bundle-按需执行" class="toc-sidebar-link">3. 更新bundle(按需执行)</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_4-编译" class="toc-sidebar-link">4. 编译</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_5-运行" class="toc-sidebar-link">5. 运行</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#八、手动发布" class="toc-sidebar-link">八、手动发布</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_1-清空和重新构建" class="toc-sidebar-link">1. 清空和重新构建</a></li><li class="toc-sidebar-sub-header"><a href="2020-03-28-GithubAndMyBlogAttacked.html#_2-部署到远程服务器" class="toc-sidebar-link">2. 部署到远程服务器</a></li></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#九、自动发布" class="toc-sidebar-link">九、自动发布</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#十、助记指令" class="toc-sidebar-link">十、助记指令</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="2020-03-28-GithubAndMyBlogAttacked.html#十一、总结" class="toc-sidebar-link">十一、总结</a><ul class="toc-sidebar-sub-headers"></ul></li></ul></div></div></div></div></div> <div class="option-box"><img src="../../images/system/wechat.png" class="nozoom"> <span class="show-txt">手机看</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="text-align:center"><span style="font-size:0.9rem">微信扫一扫</span> <img height="180px" src="https://api.qrserver.com/v1/create-qr-code/?data=https://bugstack.cn/md/devops/2020-03-28-GithubAndMyBlogAttacked.html" style="margin:10px;">
                可以<b>手机看</b>或分享至<b>朋友圈</b></div></div></div></div> <div class="option-box"><img src="../../images/system/toggle.png" width="30px" class="nozoom"> <span class="show-txt">左栏</span></div> <div onclick="javascript:window.open('https://wx.zsxq.com/dweb2/index/group/48411118851818','_blank')" class="option-box"><img src="../../images/system/xingqiu.png" width="25px" class="nozoom"> <span class="show-txt">星球</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="text-align:center"><span style="font-size:0.8rem;font-weight:bold;">实战项目<span style="font-size:8px;color:red;">「DDD+RPC分布式抽奖系统」</span>、专属小册、问题解答、简历指导、架构图稿、视频课程</span> <img height="180px" src="../../images/personal/xingqiu.png" style="margin:10px;"> <b>知识星球</b>：码农会锁
            </div></div></div></div> <div class="option-box"><img src="../../images/system/wexin4.png" width="25px" class="nozoom"> <span class="show-txt">读者群</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="text-align:center"><span style="font-size:0.8rem;font-weight:bold;">添加小傅哥微信<span style="color:red;">(fustack)</span>进虫洞栈学习交流圈「无任何套路」</span> <img src="../../images/personal/fustack.png" height="180px" style="margin:10px;">
                PS：添加时请备注<b>读者加群</b>，谢谢！
              </div></div></div></div> <div class="option-box"><img src="../../images/system/download-2.png" width="25px" class="nozoom"> <span class="show-txt">下资料</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="text-align:center"><span style="font-size:0.8rem;font-weight:bold;">扫描公众号，回复<span style="color:red;">“1024”</span>下载<span style="color:red;">100GB+</span>大学到毕业分阶段学习技术资料、PDF书籍、实战项目、简历模板等「无任何套路」</span> <img src="../../images/personal/qrcode.png" height="180px" style="margin:10px;"> <b>公众号:</b> bugstack虫洞栈
              </div></div></div></div> <div onclick="javascript:window.open('https://t.zsxq.com/17UIvdgb3','_blank')" class="option-box"><img src="../../images/system/interview.png" width="25px" class="nozoom"> <span class="show-txt">八股文</span></div> <div title="并不想吹牛皮，但！为了把Github博客粉丝转移到公众号，我干了！" class="option-box" style="padding-left:2px;text-align:center;"><a href="https://www.bugstack.cn/md/devops/2019-11-23-%E9%AA%9E%E6%9C%B5%E7%AC%89%E9%8E%AF%E5%86%B2%E6%83%9E%E9%90%97%E6%B6%9A%E6%AF%8A%E9%94%9B%E5%B1%BC%E7%B5%BE%E9%94%9B%E4%BD%B7%E8%B4%9F%E6%B5%9C%E5%97%98%E5%A6%B8Github%E9%8D%97%E6%B0%AC%EE%85%B9%E7%BB%AE%E5%A4%89%E7%AC%A3%E6%9D%9E%EE%84%82%D0%A9%E9%8D%92%E6%9D%BF%E5%8F%95%E6%B5%BC%E6%A5%80%E5%BD%BF%E9%94%9B%E5%B1%BE%E5%9E%9C%E9%AA%9E%E8%B9%AD%E7%B0%A1%E9%94%9B%81.html"><img src="../../images/system/pre2.png" width="30px" class="nozoom"> <span class="show-txt">上一篇</span></a></div> <div title="《Netty+JavaFx实战：仿桌面版微信聊天》代码开源、上云部署、视频讲解，只为让你给点个Star！" class="option-box" style="padding-left:2px;text-align:center;"><a href="https://www.bugstack.cn/md/devops/2020-04-25-%E9%8A%86%E5%A5%9Betty+JavaFx%E7%80%B9%E7%82%B4%E5%9E%AC%E9%94%9B%E6%B0%AB%E8%B1%A2%E5%A6%97%E5%B2%84%E6%BD%B0%E9%90%97%E5%A0%9D%E4%BA%95%E6%B7%87%C2%A4%E4%BA%B0%E6%BE%B6%E2%94%BF%E2%82%AC%E5%AC%A9%E5%94%AC%E9%90%AE%E4%BD%B8%E7%B4%91%E5%A9%A7%90+%E6%B6%93%E5%A9%81%E7%B0%AF%E9%96%AE%E3%84%A7%E8%AE%B2+%E7%91%99%E5%97%9B%EE%95%B6%E7%92%81%E8%8C%B6%D0%92.html"><img src="../../images/system/next2.png" width="30px" class="nozoom"> <span class="show-txt">下一篇</span></a></div></div>  <div class="page-side-sitemap"><div class="option-box"><img src="../../images/system/sitemap.png" class="nozoom img"> <span class="show-txt">站点图</span> <div class="sitemap-container"><h4>站点导航图
              <a href="https://www.bugstack.cn/md/about/me/2020-08-25-13%E9%AA%9E%E5%AD%98%E7%98%AF%E6%B6%93%E6%B0%BE%E7%B4%9D%E9%90%A2%E3%84%A4%E8%A2%B1%E9%AA%9E%E5%AD%98%E6%A4%82%E9%97%82%E7%BF%A0%E7%B2%A0%E6%BE%B6%E6%A0%A7%E5%AF%98%E7%92%A7%E6%8B%8C%E7%B9%98%E6%B5%9C%E6%8E%95%E4%BB%88%E7%BC%83%E6%88%9D%E3%81%87%E9%8D%98%82.html" class="sitemap-top-link"> 关于我</a> <a href="https://www.bugstack.cn/md/about/study/2020-04-30-%E7%92%81%E6%9F%A5%E4%BA%BE%E9%90%9E%E5%97%AD%E7%B4%9D%E9%8D%99%EE%81%87%EE%9B%A6%E6%B5%A3%E7%8A%B3%E6%A7%B8%E6%B6%93%E2%82%AC%E6%B6%93%EE%81%86%E5%9F%8D%E9%8E%B6%E6%A8%BF%E5%90%98%E9%90%A8%E5%8B%AD%E2%96%BC%E6%90%B4%E5%BF%93%E6%86%B3%E9%94%9B%E5%B1%BE%E7%98%AF%E6%B6%93%E6%B0%AD%E5%A3%98%E5%AE%B8%E3%83%A4%E7%B6%94%E9%90%AA%E7%86%BA%E6%AE%91%E6%B6%93%E5%B6%89%E6%B8%B6%E7%91%95%E4%BD%B8%E5%95%80%E9%91%BA%E9%81%8D%E6%8C%B6%E9%8D%A9%E7%A1%85%EE%86%84.html" class="sitemap-top-link"> 关于学习</a> <a href="https://www.bugstack.cn/md/about/job/2020-11-15-BATJTMD%E9%94%9B%E5%B1%BD%E3%81%87%E9%8D%98%E5%82%9B%E5%AB%91%E9%91%B1%E6%A9%88%E7%B4%9D%E9%96%AE%E8%8A%A5%E5%AB%91%E6%B5%A0%E2%82%AC%E6%B6%94%E5%A0%9F%E7%89%B1Java%E7%BB%8B%E5%AC%AA%E7%B0%AD%E9%8D%9B%E6%A9%88%E7%B4%B5.html" class="sitemap-top-link"> 关于职场</a></h4> <table class="sitemap-table"><tr><td nowrap="nowrap"><div class="sitemap-col-group">常用搜索</div></td> <td><div class="sitemap-col-item"><a href="http://www.baidu.com/" target="_blank" title="百度">  
          百度
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="http://www.google.com/" target="_blank" title="Google">  
          Google
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="http://www.bing.com/" target="_blank" title="Bing">  
          Bing
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://github.com" target="_blank" title="Github">  
          Github
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://www.programcreek.com/java-api-examples/index.php" target="_blank" title="搜代码">  
          搜代码
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></td> <!----></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">技术社区</div></td> <td><div class="sitemap-col-item"><a href="http://www.csdn.net/" target="_blank" title="CDSN">  
          CDSN
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="http://www.cnblogs.com/" target="_blank" title="博客园">  
          博客园
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://www.oschina.net" target="_blank" title="OSChina">  
          OSChina
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://segmentfault.com/" target="_blank" title="思否">  
          思否
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://juejin.im" target="_blank" title="掘金">  
          掘金
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://www.linuxidc.com/" target="_blank" title="Linux公社">  
          Linux公社
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://www.ibm.com/developerworks/cn/" target="_blank" title="IBM 开发者">  
          IBM 开发者
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://stackoverflow.com" target="_blank" title="StackOverflow">  
          StackOverflow
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></td> <!----></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">PDF 下载</div></td> <td><div class="sitemap-col-item"><a href="https://download.csdn.net/download/Yao__Shun__Yu/14932325" target="_blank" title="《Java 面经手册》">  
          《Java 面经手册》
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://download.csdn.net/download/Yao__Shun__Yu/19265731" target="_blank" title="《重学Java设计模式》">  
          《重学Java设计模式》
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://download.csdn.net/download/Yao__Shun__Yu/21009038" target="_blank" title="《手撸 Spring》">  
          《手撸 Spring》
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://download.csdn.net/download/Yao__Shun__Yu/12505051" target="_blank" title="《字节码编程》">  
          《字节码编程》
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></td> <!----></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">面试求职</div></td> <!----> <td><a href="https://www.bugstack.cn/md/about/job/2020-04-11-%E5%AE%B8%E3%83%A4%E7%B6%94%E6%B6%93%E3%82%85%E5%8B%BE%E7%BB%A0%E2%82%AC%E9%8D%98%E5%97%97%E5%95%93%E9%8E%B4%E6%84%AF%E7%B9%96%E9%8F%8D%E5%87%A4%E7%B4%9D%E7%92%8B%E4%BD%BD%EE%9B%A6%E6%B5%A3%E7%8A%B2%E6%86%96%E9%94%9B%81.html" class="sitemap-col-item">
          简历优化
        </a><a href="https://www.bugstack.cn/md/about/job/2021-02-24-%E9%8D%97%E5%A9%82%E5%8B%BE%E7%BB%9B%E6%B6%A2%E2%82%AC%E5%A4%89%E7%B0%A1400+%E6%B5%A0%E7%95%8C%E7%95%9D%E9%8D%98%E5%97%AD%E7%B4%9D%E9%8D%9B%E5%A9%85%E7%98%94%E6%B5%A3%E7%8A%B3%E2%82%AC%E5%BA%9D%E7%AE%9E%E9%8D%90%E6%AC%8E%E7%B4%B0%E7%90%9A%EE%82%A3%E6%8C%AC.html" class="sitemap-col-item">
          简历筛选
        </a><a href="https://www.bugstack.cn/md/about/job/2020-11-15-BATJTMD%E9%94%9B%E5%B1%BD%E3%81%87%E9%8D%98%E5%82%9B%E5%AB%91%E9%91%B1%E6%A9%88%E7%B4%9D%E9%96%AE%E8%8A%A5%E5%AB%91%E6%B5%A0%E2%82%AC%E6%B6%94%E5%A0%9F%E7%89%B1Java%E7%BB%8B%E5%AC%AA%E7%B0%AD%E9%8D%9B%E6%A9%88%E7%B4%B5.html" class="sitemap-col-item">
          大厂要求
        </a><a href="https://www.bugstack.cn/md/about/job/2020-12-20-%E5%AE%B8%E3%83%A4%E7%B6%943%E9%AA%9E%E8%BE%BE%E7%B4%9D%E9%90%AA%E5%AC%AA%E6%9A%90%E7%92%A7%E5%8B%AC%E6%9E%A1%E9%91%B3%E8%8A%A5%E6%B9%80%E9%92%96%AA30K%E9%94%9B%9F.html" class="sitemap-col-item">
          薪资待遇
        </a><a href="https://www.bugstack.cn/md/about/me/2020-11-29-%E9%8D%96%E6%A5%81%E7%B4%93%E9%90%AE%E4%BD%B8%E5%95%98%E9%90%A8%E5%8B%AC%E5%9E%9C%E9%94%9B%E5%B1%BE%E5%A6%B8%E9%8D%A6%E3%84%A5%E3%81%87%E9%8D%A9%E5%BA%A1%E7%AB%B6%E6%9D%A9%E5%9B%A8%E5%9E%9A%E6%B5%9C%E5%97%97%E6%82%B2%E7%80%9B%E6%84%AA%E7%AB%B4%E9%8F%8D%E7%96%AF%E5%9E%9D%E9%8F%88%E5%B6%8F%E7%B4%9D%E9%8D%9D%E5%A0%9D%E6%90%B1%E9%8D%9D%E5%A0%9D%E6%90%B1%E9%8D%9D%E5%A0%AC%E7%B4%92.html" class="sitemap-col-item">
          北漂生活
        </a></td></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">Java相关</div></td> <!----> <td><a href="https://www.bugstack.cn/md/java/interview/2020-08-04-%E9%97%88%E3%88%A2%E7%B2%A1%E9%8E%B5%E5%AC%AA%E5%94%BD%20%E8%B7%AF%20%E7%BB%97%AC2%E7%BB%A1%E5%9B%A5%E2%82%AC%E5%A9%83%E6%9A%9F%E9%8E%B9%EE%86%BE%E7%B2%A8%E9%8F%8B%E5%8B%B6%E7%B4%9DHashCode%E6%B6%93%E8%BD%B0%E7%B2%88%E6%B6%94%E5%A0%9C%E5%A8%87%E9%90%A2%A831%E6%B5%A3%E6%BB%80%E8%B4%9F%E6%B6%94%E6%A8%BB%E6%9A%9F%E9%94%9B%E7%86%B4%E2%82%AC%8B.html" class="sitemap-col-item">
          数据结构和算法
        </a><a href="https://www.bugstack.cn/md/java/interview/2020-10-14-%E9%97%88%E3%88%A2%E7%B2%A1%E9%8E%B5%E5%AC%AA%E5%94%BD%20%E8%B7%AF%20%E7%BB%97%AC13%E7%BB%A1%E5%9B%A5%E2%82%AC%E5%A9%87%E6%AB%8E%E6%B5%9C%E5%92%BCDK%E9%8A%86%E4%B8%86GLIB%E9%94%9B%E5%B2%83%E7%B9%95%E9%8F%88%893%E7%BB%89%E5%B6%87%E8%A2%AB%E6%B5%A0%EF%BD%87%E6%82%8A%E9%8F%82%E7%91%B0%E7%B4%A1%E9%94%9B%E7%86%BC%E6%BD%B0%E7%92%87%E6%9B%9E%E5%BC%B5%E9%8D%97%E2%80%B2%E7%B6%87%E9%94%9B%E4%BD%B5%E2%82%AC%8B.html" class="sitemap-col-item">
          并发和锁
        </a><a href="https://www.bugstack.cn/md/java/interview/2020-11-25-%E9%97%88%E3%88%A2%E7%B2%A1%E9%8E%B5%E5%AC%AA%E5%94%BD%20%E8%B7%AF%20%E7%BB%97%AC19%E7%BB%A1%E5%9B%A5%E2%82%AC%E5%A5%A3hread.start()%20%E9%94%9B%E5%B1%BD%E7%95%A0%E9%8F%84%EE%88%9B%E2%82%AC%E5%BA%9D%E7%AE%9E%E7%92%81%E2%95%83%E5%9A%8E%E7%BB%8B%E5%AC%AA%E6%83%8E%E9%8D%94%E3%84%A7%E6%AE%91%E9%8D%9B%EE%9D%AE%E7%B4%B5%E9%8A%86%8B.html" class="sitemap-col-item">
          多线程
        </a><a href="https://www.bugstack.cn/md/java/core/2019-12-10-[%E9%8F%88%E5%A4%8C%E5%81%A3%E9%AA%9E%E8%8C%B6%E6%8F%A3]Jdk1.8%E9%8F%82%E6%89%AE%E5%A3%92%E9%8E%AC%D1%83%E7%96%84%E9%8E%B4%E6%A8%BC%E7%98%9241%E6%B6%93%EE%81%85%EE%94%8D%E6%B8%9A%8B.html" class="sitemap-col-item">
          Java8 特性
        </a><a href="https://www.bugstack.cn/md/java/interview/2020-11-25-%E9%97%88%E3%88%A2%E7%B2%A1%E9%8E%B5%E5%AC%AA%E5%94%BD%20%E8%B7%AF%20%E7%BB%97%AC19%E7%BB%A1%E5%9B%A5%E2%82%AC%E5%A5%A3hread.start()%20%E9%94%9B%E5%B1%BD%E7%95%A0%E9%8F%84%EE%88%9B%E2%82%AC%E5%BA%9D%E7%AE%9E%E7%92%81%E2%95%83%E5%9A%8E%E7%BB%8B%E5%AC%AA%E6%83%8E%E9%8D%94%E3%84%A7%E6%AE%91%E9%8D%9B%EE%9D%AE%E7%B4%B5%E9%8A%86%8B.html" class="sitemap-col-item">
          JVM 虚拟机
        </a></td></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">Spring</div></td> <!----> <td><a href="https://www.bugstack.cn/md/spring/develop-spring/2021-05-16-%E7%BB%97%AC1%E7%BB%94%E7%8B%85%E7%B4%B0%E5%AF%AE%E2%82%AC%E7%BB%A1%E5%9B%A6%E7%B2%99%E7%BC%81%E5%B6%8F%E7%B4%9D%E9%8E%B5%E5%AC%AA%E5%95%93Spring%E9%91%B3%E7%95%8C%E7%B2%B0%E6%B5%A3%E7%8A%B2%E7%94%AB%E9%8F%89%E3%83%A4%E7%B2%88%E6%B6%94%E5%A0%AC%E7%B4%B5.html" class="sitemap-col-item">
          手写 Spring
        </a><a href="https://www.bugstack.cn/md/spring/spring-cloud/2019-10-31-Spring%20Cloud%E9%97%86%E8%BA%B2%E2%82%AC%E5%A9%83%E2%82%AC%E7%BB%98%E6%B9%81%E6%B6%93%E2%82%AC%E9%8D%8B%E5%BF%94%EE%9B%A7%E6%9D%A9%E6%9D%BF%E6%86%A1%E7%92%87%E5%A4%89%E7%B6%98SpringCloud%E9%8F%84%EE%88%99%E7%B2%88%E6%B6%94%E5%A0%9B%E2%82%AC%8B.html" class="sitemap-col-item">
          SpringCloud 入门
        </a><a href="https://www.bugstack.cn/md/spring/source-code/2019-12-25-2019-12-25-[%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD]Mybatis%E9%8E%BA%E3%83%A5%E5%BD%9B%E5%A8%8C%E2%84%83%E6%B9%81%E7%80%B9%E7%82%B5%E5%B9%87%E7%BB%AB%E8%AE%B3%E8%B4%9F%E6%B5%A0%E2%82%AC%E6%B6%94%E5%A0%9D%E5%BD%B2%E6%B5%A0%E3%83%A6%E5%A2%BD%E7%90%9B%E5%B1%BD%EE%96%83%E9%8D%92%E7%8A%B3%E6%95%BC%E9%8F%8C%A5.html" class="sitemap-col-item">
          Mybatis 源码分析
        </a><a href="https://www.bugstack.cn/md/spring/source-code/2020-01-13-2020-01-13-[%E5%A9%A7%E6%84%AE%E7%88%9C%E9%8D%92%E5%97%98%E7%80%BD]%E9%8D%A9%E8%BD%B0%E7%B0%ACjdbc%E7%80%B9%E7%82%B5%E5%B9%87%E6%B6%93%E2%82%AC%E6%B6%93%E7%8B%A3emo%E9%90%97%E5%A0%A2%E6%AE%91Mybatis.html" class="sitemap-col-item">
          手写 Mybatis
        </a><a href="https://www.bugstack.cn/md/spring/source-code/2020-01-01-2020-01-01-[%E5%A9%A7%E6%84%AE%E7%88%9C%E7%91%99%EF%BD%86%E7%80%BD]Spring%E7%80%B9%E6%B0%AD%E6%A4%82%E6%B5%A0%E8%AF%B2%E5%A7%9FQuartz%E9%8E%B5%D1%86%EE%94%91%E9%8D%8F%E3%84%A8%E7%B9%83%E7%BB%8B%E5%AC%AB%E7%B0%AE%E9%90%AE%E4%BD%BD%D0%92%E7%92%87%BB.html" class="sitemap-col-item">
          Quartz 源码分析
        </a></td></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">面向对象</div></td> <!----> <td><a href="https://www.bugstack.cn/md/develop/design-pattern/2020-05-20-%E9%96%B2%E5%B6%85%EE%84%9FJava%E7%92%81%E6%8D%90%EE%85%B8%E5%A6%AF%E2%80%B3%E7%B4%A1%E9%8A%86%E5%A9%82%E7%96%84%E9%8E%B4%E6%A8%BA%E4%BC%90%E9%8D%98%E5%82%9B%E6%9F%9F%E5%A8%89%E6%9B%9F%C4%81%E5%AF%AE%E5%BF%8B%E2%82%AC%8B.html" class="sitemap-col-item">
          设计模式
        </a><a href="https://www.bugstack.cn/md/develop/framework/ddd/2019-10-15-DDD%E6%B6%93%E6%92%BB%EE%95%BD%E5%A6%97%E5%A0%9C%E7%B7%A5%E6%B6%93%E2%82%AC%E9%8A%86%E5%A9%82%E5%9E%B5%E7%92%87%E5%97%9B%EE%95%AB%E9%8D%A9%E7%86%BC%E2%94%8D%E9%8D%94%E3%84%A8%EE%86%95%E7%92%81%EE%93%8ADD%E9%92%80%E8%97%89%E6%B9%B4%E9%8A%86%8B.html" class="sitemap-col-item">
          DDD 落地
        </a><a href="https://www.bugstack.cn/md/develop/framework/scheme/2021-02-21-%E9%8D%8F%E5%85%85%E7%B0%AC%E6%B5%A3%E5%BA%9D%E5%94%AC%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AC%AC%E6%AE%91%E9%8D%99%EE%88%9B%E5%AF%94%E7%BC%81%EE%85%9F%E2%82%AC%D1%82%E6%B0%A6%E6%B5%A0%E6%A8%BF%EE%86%95%E7%92%81%E2%80%B3%E6%8B%B0%E9%8D%92%E5%97%98%E7%80%BD.html" class="sitemap-col-item">
          低代码
        </a><a href="https://www.bugstack.cn/md/develop/framework/scheme/2021-02-04-%E9%8D%A9%E8%BD%B0%E7%B0%ACIDEA%E9%8E%BB%E6%8E%8D%E6%AC%A2%E5%AF%AE%E2%82%AC%E9%8D%99%E6%88%9D%E6%8B%B0%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%B9%E5%BD%83%E5%A6%97%E2%95%82%E5%A6%A7%E9%8F%88%EE%88%A4%E7%B4%9D%E7%80%B9%E7%82%B5%E5%B9%87%E9%90%AE%E6%96%BF%E5%BD%82%E6%B5%9C%E3%82%84%E7%B2%AF%E7%92%90%E3%84%A9%E5%99%BA%E9%91%B7%EE%81%84%E5%A7%A9%E9%8D%92%E5%97%98%E7%80%BD.html" class="sitemap-col-item">
          字节码插桩
        </a><a href="https://www.bugstack.cn/md/develop/framework/scheme/2021-02-28-%E5%AE%B8%E3%83%A4%E7%B6%94%E6%B6%93%E3%82%84%E7%AC%81%E9%AA%9E%E8%BE%BE%E7%B4%9D%E9%8F%81%E7%BF%A0%E7%AC%89%E9%8F%84%E5%BA%A3%E6%AB%A7%E9%8F%8B%E8%88%B5%E7%80%AF%E9%8D%A5%E9%B9%83%E5%85%98%E9%90%A2%E8%AF%B2%E6%9A%90%E9%94%9B%9F.html" class="sitemap-col-item">
          画架构图
        </a><a href="https://www.bugstack.cn/md/develop/framework/scheme/2021-07-19-%E7%92%8B%E5%86%AA%E7%88%BA%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%B9%E5%BD%83%E5%A6%97%E2%95%82%E5%A6%A7%E9%8F%88%EE%88%A4%E7%B4%9D%E9%90%A2%E3%84%A4%E7%B0%AC%E7%BB%AF%E8%8D%A4%E7%B2%BA%E9%90%A9%E6%88%9E%E5%B8%B6%E7%92%81%E6%8D%90%EE%85%B8%E9%8D%9C%E5%B1%BD%E7%96%84%E9%90%9C%B0.html" class="sitemap-col-item">
          系统监控
        </a><a href="https://www.bugstack.cn/md/develop/framework/scheme/2021-03-24-%E9%8D%92%E6%B0%B1%E4%BC%80%E6%B5%9C%E5%97%99%E6%AE%91%E6%B6%93%EE%85%9E%E5%BD%B4%E6%9D%9E%EE%84%80%E3%81%94%E7%81%8F%E8%BE%A8%E5%AA%B6%E9%94%9B%E5%B1%BC%E7%AB%B4%E6%BE%B6%D1%84%E5%B0%9D%E9%8D%8F%EE%84%80%E5%BE%83%E9%8F%80%E5%8F%A5%E7%AC%89%E6%B6%93%E5%AC%AA%E5%BC%B5%E9%8E%B7%E5%A4%B8%E7%AC%89%E7%92%A7%E9%94%8B%E6%BD%B5%E9%94%9B%81.html" class="sitemap-col-item">
          中台
        </a><a href="https://www.bugstack.cn/md/develop/standard/2020-09-14-%E6%B6%93%E2%82%AC%E5%A8%86%E2%80%B2%E5%94%AC%E9%90%AE%E4%BD%BD%E7%98%8E%E7%80%B9%E2%98%85%E7%B4%9D%E5%AE%B8%EE%86%BE%E5%81%A3%E6%9D%A9%E5%9B%A6%E7%AC%89%E6%B5%9C%E5%97%9A%E7%98%AF%E9%90%A2%E3%84%A6%E6%B9%A1%E9%94%9B%81.html" class="sitemap-col-item">
          研发规范
        </a></td></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">中间件&amp;插件</div></td> <!----> <td><a href="https://www.bugstack.cn/md/assembly/middleware/2019-12-07-%E9%8D%99%E6%88%9D%E7%AB%B7Jar%E9%8D%96%E5%91%AD%E5%9F%8CMaven%E6%B6%93%EE%85%9E%E3%81%8E%E6%B5%A0%E6%92%B3%E7%B0%B1%E9%94%9B%E5%B1%BC%E8%B4%9F%E5%AF%AE%E2%82%AC%E9%8D%99%E6%88%9D%E7%B4%91%E5%A9%A7%E6%84%AA%E8%85%91%E9%97%82%E7%BF%A0%E6%AC%A2%E9%8D%8B%E6%B0%AC%E5%99%AF%E6%BE%B6%87.html" class="sitemap-col-item">
          Maven中央仓库
        </a><a href="https://www.bugstack.cn/md/assembly/middleware/2021-08-19-%E9%8D%A9%E8%BD%B0%E7%B0%ACHash%E9%8F%81%EF%BD%85%E5%9E%AA%E9%94%9B%E5%B1%BE%E6%9A%9F%E9%8E%B9%EE%86%BC%E7%B0%B1%E7%92%BA%EE%88%9C%E6%95%B1%E7%BC%81%E5%8B%AA%E6%AC%A2%E7%92%81%E6%8D%90%EE%85%B8.html" class="sitemap-col-item">
          数据库路由设计
        </a><a href="https://www.bugstack.cn/md/assembly/idea-plugin/2021-08-27-%E9%8E%B6%E2%82%AC%E9%8F%88%EE%88%9D%E7%9A%9F%E9%90%AE%E6%97%93%E7%B4%9DIDEA%20%E9%8E%BB%E6%8E%8D%E6%AC%A2%E9%8E%AC%E5%BA%9D%E7%AE%9E%E5%AF%AE%E2%82%AC%E9%8D%99%E6%88%AF%E7%B4%B5.html" class="sitemap-col-item">
          IDEA-Plugin
        </a></td></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">Netty 4.x</div></td> <!----> <td><a href="https://www.bugstack.cn/md/netty/base/2019-07-30-netty%E5%A6%97%E5%A0%9C%E7%B7%A5%E9%94%9B%E5%AE%AFetty4.1%E9%8D%A9%E8%99%B9%EE%94%85%E9%8D%8F%E3%83%A9%E6%A3%AC%E7%BB%A1%E5%9B%AC%E6%B5%82%E9%8A%86%E5%A9%82%E5%9E%B5%E9%8D%8F%EE%99%90avaIO%E6%B6%94%E5%AC%AE%E6%A3%ACBIO%E9%8A%86%E4%B8%AFIO%E9%8A%86%E4%B8%84IO%E7%80%B9%E7%82%B4%E5%9E%AC%E7%BC%81%E5%86%A7%E7%AF%84%E9%8A%86%8B.html" class="sitemap-col-item">
          基础入门
        </a><a href="https://www.bugstack.cn/md/netty/expand/2019-08-16-netty%E5%A6%97%E5%A0%9C%E7%B7%A5%E9%94%9B%E5%AE%AFetty4.1%E6%B6%93%EE%85%A0%E9%AA%87%E9%8E%B7%E6%92%B3%E7%9D%8D%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A5%9Betty%E6%B6%93%E5%B6%B4pringBoot%E9%8F%81%E6%9D%91%E6%82%8E%E9%8A%86%8B.html" class="sitemap-col-item">
          中级拓展
        </a><a href="https://www.bugstack.cn/md/assembly/idea-plugin/2021-08-27-%E9%8E%B6%E2%82%AC%E9%8F%88%EE%88%9D%E7%9A%9F%E9%90%AE%E6%97%93%E7%B4%9DIDEA%20%E9%8E%BB%E6%8E%8D%E6%AC%A2%E9%8E%AC%E5%BA%9D%E7%AE%9E%E5%AF%AE%E2%82%AC%E9%8D%99%E6%88%AF%E7%B4%B5.html" class="sitemap-col-item">
          高级应用
        </a><a href="https://www.bugstack.cn/md/netty/application/2019-09-01-%E9%8E%B5%E5%AC%AA%E5%95%93RPC%E5%A6%97%E5%97%98%E7%81%A6%E7%BB%97%EE%83%BF%E7%AB%B4%E7%BB%94%E7%8A%AE%E2%82%AC%E5%A9%85%E5%9A%9C%E7%80%B9%E6%B0%AB%E7%AE%9F%E9%96%B0%E5%B6%87%E7%96%86xml%E9%8A%86%8B.html" class="sitemap-col-item">
          RPC 实现
        </a><a href="https://www.bugstack.cn/md/netty/application/2021-08-17-%E7%BC%81%E6%AC%8F%EE%84%9F%E6%B6%94%E7%8A%B2%E5%A7%9E%E9%90%90%E7%91%B0%E7%96%84%E7%92%BA%E7%A2%89%E7%B4%9D%E5%AF%AE%E2%82%AC%E9%8D%99%E6%88%9C%E7%AB%B4%E6%B6%93%EE%81%84%E5%9E%8E%E7%94%AF%E5%86%A8%E7%B4%A1IM%E9%8D%97%E8%99%AB%E6%A4%82%E9%96%AB%E6%B0%AB%E4%BF%8A%E7%BB%AF%E8%8D%A4%E7%B2%BA.html" class="sitemap-col-item">
          IM 仿微信
        </a></td></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">字节码编程</div></td> <!----> <td><a href="https://www.bugstack.cn/md/bytecode/asm/2020-03-25-[ASM%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AA%87%E6%BF%A1%E5%82%9B%E7%81%89%E6%B5%A3%E7%8A%B2%E5%BD%A7%E9%8D%90%E6%A9%9FRUD%E9%94%9B%E5%B2%84%E5%81%85%E6%9D%A9%E6%AC%91%EE%9D%92%E9%8E%B6%E2%82%AC%E9%8F%88%EE%88%99%E7%B6%98%E5%A7%98%E6%AD%8C%E7%B9%99%E7%BA%B0%E9%A2%81%E7%AC%89%E9%8D%92%B0.html" class="sitemap-col-item">
          ASM
        </a><a href="https://www.bugstack.cn/md/bytecode/javassist/2020-04-19-%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AC%B6%E7%B4%9DJavassist%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A9%82%E7%86%80%E6%B5%9C%E5%B7%8Eavassist%E9%90%A8%E5%8B%AD%EE%83%87%E6%B6%93%E2%82%AC%E6%B6%93%EE%81%85%EE%94%8D%E6%B8%9A%E5%AA%93elloworld%E9%8A%86%8B.html" class="sitemap-col-item">
          Javassist
        </a><a href="https://www.bugstack.cn/md/bytecode/byte-buddy/2020-05-08-%E7%80%9B%E6%A5%84%E5%A6%AD%E9%90%AE%E4%BD%BA%E7%B4%AA%E7%BB%8B%E5%AC%B6%E7%B4%9DByte-buddy%E7%BB%A1%E5%9B%A6%E7%AB%B4%E9%8A%86%E5%A9%82%E7%86%80%E6%B5%9C%E5%B6%A3yte%20Buddy%E7%92%87%EE%85%9F%E7%A1%B6%E9%8D%92%E6%B6%98%E7%BC%93%E9%90%A8%E5%8B%AD%EE%83%87%E6%B6%93%E2%82%AC%E6%B6%93%E7%8B%A7elloWorld%E9%8A%86%8B.html" class="sitemap-col-item">
          Byte-Buddy
        </a><a href="https://www.bugstack.cn/md/bytecode/agent/2019-07-10-%E9%8D%A9%E8%BD%B0%E7%B0%ACJavaAgent%E9%90%A8%E5%8B%AB%E5%8F%8F%E9%96%BE%E6%8D%90%E7%9F%BE%E9%90%A9%E6%88%9E%E5%B8%B6%E6%B6%93%E2%82%AC%E9%8A%86%E5%A9%82%E6%A3%AC%E9%94%9B%E4%B8%A3avaAgent%E9%8A%86%8B.html" class="sitemap-col-item">
          JavaAgent
        </a><a href="https://www.bugstack.cn/md/bytecode/asm-document/1%E5%AF%AE%E6%9B%A1%E2%96%88.html" class="sitemap-col-item">
          ASM-DOC
        </a><a href="https://www.bugstack.cn/md/bytecode/asm-document/JVM-%E9%8E%B8%E5%9B%A6%E6%8A%A4%E7%90%9B%A8.html" class="sitemap-col-item">
          JVM 指令码
        </a></td></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">专栏小册</div></td> <td><div class="sitemap-col-item"><a href="https://blog.csdn.net/generalfu/category_10400631.html" target="_blank" title="《Netty+JavaFx实战：仿桌面版微信聊天》">  
          《Netty+JavaFx实战：仿桌面版微信聊天》
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://juejin.cn/book/6940996508632219689" target="_blank" title="《SpringBoot 中间件设计和开发》">  
          《SpringBoot 中间件设计和开发》
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://t.zsxq.com/jAi2nUf" target="_blank" title="《Lottery 抽奖系统 - 基于领域驱动设计的四层架构实践》">  
          《Lottery 抽奖系统 - 基于领域驱动设计的四层架构实践》
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></td> <!----></tr><tr><td nowrap="nowrap"><div class="sitemap-col-group">知识星球</div></td> <td><div class="sitemap-col-item"><a href="https://t.zsxq.com/jAi2nUf" target="_blank" title="码农会锁">  
          码农会锁
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="sitemap-col-item"><a href="https://codechina.csdn.net/KnowledgePlanet" target="_blank" title="实战项目">  
          实战项目
          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></td> <!----></tr></table></div></div></div> <!----> </aside></div><div class="global-ui"><div class="read-more-wrap" style="display:none;position:absolute;bottom:0px;z-index:9999;width:100%;margin-top:-100px;font-family:PingFangSC-Regular, sans-serif;"><div id="read-more-mask" style="position: relative; height: 200px; background: -webkit-gradient(linear, 0 0%, 0 100%, from(rgba(255, 255, 255, 0)), to(rgb(255, 255, 255)));"></div> <a id="read-more-btn" target="_self" style="position: absolute; left: 50%; top: 70%; bottom: 30px; transform: translate(-50%, -50%); width: 160px; height: 36px; line-height: 36px; font-size: 15px; text-align: center; border: 1px solid rgb(222, 104, 109); color: rgb(222, 104, 109); background: rgb(255, 255, 255); cursor: pointer; border-radius: 6px;">阅读全文</a> <div id="btw-modal-wrap" style="display: none;"><div id="btw-mask" style="position: fixed; top: 0px; right: 0px; bottom: 0px; left: 0px; opacity: 0.7; z-index: 999; background: rgb(0, 0, 0);"></div> <div id="btw-modal" style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; text-align: center; font-size: 13px; background: rgb(255, 255, 255); border-radius: 10px; z-index: 9999; font-family: PingFangSC-Regular, sans-serif;"><span id="btw-modal-close-btn" style="position: absolute; top: 5px; right: 15px; line-height: 34px; font-size: 34px; cursor: pointer; opacity: 0.2; z-index: 9999; color: rgb(0, 0, 0); background: none; border: none; outline: none;">×</span> <p id="btw-modal-header" style="margin-top: 40px; line-height: 1.8; font-size: 13px;">
                扫码或搜索：<span style="color: #E9405A; font-weight: bold;">bugstack虫洞栈</span> <br>发送：<span id="fustack-token" class="token" style="color: #e9415a; font-weight: bold; font-size: 17px; margin-bottom: 45px;">290992</span> <br>即可<span style="color: #e9415a; font-weight: bold;">立即永久</span>解锁本站全部文章</p> <img src="../../images/personal/qrcode.png" style="width: 180px; margin-top: 10px; margin-bottom: 30px; border: 8px solid rgb(230, 230, 230);"></div></div></div><div class="pay-read-more-wrap" style="display:none;position:absolute;bottom:0px;z-index:9999;width:100%;margin-top:-100px;font-family:PingFangSC-Regular, sans-serif;"><div id="pay-read-more-mask" style="position: relative; height: 200px; background: -webkit-gradient(linear, 0 0%, 0 100%, from(rgba(255, 255, 255, 0)), to(rgb(255, 255, 255)));"></div> <a id="pay-read-more-btn" target="_blank" style="position: absolute; left: 50%; top: 70%; bottom: 30px; transform: translate(-50%, -50%); width: 160px; height: 36px; line-height: 36px; font-size: 15px; text-align: center; border: 1px solid rgb(222, 104, 109); color: rgb(222, 104, 109); background: rgb(255, 255, 255); cursor: pointer; border-radius: 6px;">星球会员</a></div></div></div>
    <script src="../../assets/js/cg-styles.js@v=1710892328285" defer></script><script src="../../assets/js/cg-4.js@v=1710892328285" defer></script><script src="../../assets/js/cg-3.js@v=1710892328285" defer></script><script src="../../assets/js/cg-282.js@v=1710892328285" defer></script><script src="../../assets/js/cg-5.js@v=1710892328285" defer></script><script src="../../assets/js/cg-6.js@v=1710892328285" defer></script><script src="../../assets/js/cg-app.js@v=1710892328285" defer></script>
  </body>
</html>
